Как бывший разработчик продукта LLM я могу сказать, что это так или по крайней мере было. Ниже приведен отрывок, который я взял из общедоступного информационного центра для версии 2.6.
Пакет com.ibm.llm.jms Описание
Реализуйте общедоступные классы поставщика для клиента LLM JMS.
Большинство интерфейсов, используемых в JMS, определяются стандартными интерфейсами JMS. Однако спецификация JMS не включает классы и интерфейсы, необходимые для настройки клиента JMS.
См. документацию JMS API для получения информации о классах и методах JMS.
Введение
Клиент LLM JMS предоставляет интерфейс службы сообщений Java (JMS) для LLM. Использование интерфейса JMS для LLM обеспечивает общий интерфейс с другими провайдерами обмена сообщениями и ускоряет разработку приложений, позволяя разработчикам использовать знакомые им интерфейсы. Использование интерфейса JMS лучше всего подходит для приложений, которые используют общую функцию обмена сообщениями, где настройки можно администрировать централизованно. Сюда входят многие традиционные клиентские приложения. Клиент LLM JMS также не работает, если приложение зависит от конкретных функций LLM или требует значительного взаимодействия приложения с LLM. Несмотря на то, что при использовании интерфейса JMS добавляется некоторая задержка, он по-прежнему обеспечивает очень низкую задержку и высокую пропускную способность обмена сообщениями.
Клиент LLM JMS поддерживает большинство клиентских функций LLM, но не поддерживает серверную функцию работы на уровне или в качестве передатчика балансировки нагрузки.
LLM основан на прямом обмене сообщениями между производителем и потребителем. JMS обычно реализуется с использованием сервера сообщений, а функция JMS, для которой требуется сервер сообщений, недоступна при использовании клиента LLM JMS. Это включает в себя все двухточечные сообщения (очереди), а также функцию восстановления. Клиент LLM JMS предназначен для работы в среде JSE и не поддерживает расширения сервера приложений или транзакции XA.
Как клиент LLM JMS реализует JMS
Клиент LLM JMS реализует каждый из основных объектов JMS с классом реализации, который не предоставляется извне. Подклассы этих объектов реализованы с использованием одного и того же класса реализации. Это означает, что есть только два администрируемых объекта, ConnectionFactory и Destination. Определенная LLM ConnectionFactory может быть приведена к TopicConnectionFactory и QueueConnectionFactory, а определенная LLM Destination может быть приведена к Topic и Queue. То же самое верно для Connection, Session, MessageProducer и MessageConsumer. Объект Destination от одного провайдера должен использоваться с Connection от того же провайдера. Однако можно отправить сообщение, созданное одним поставщиком JMS, другому поставщику JMS. Отправка сообщения, созданного другим провайдером JMS, не так эффективна, как отправка сообщения, созданного клиентом LLM JMS, но эта функция предназначена для того, чтобы упростить приложению переход от одного провайдера к другому.
Клиент LLM JMS не реализует двухточечную модель обмена сообщениями (очереди), но можно создавать все объекты JMS.
Для клиента LLM JMS требуется JVM не ниже Java 5.
Клиент LLM JMS определяет все шесть объектов типов сообщений (Message, BytesMessage, MapMessage, ObjectMessage, StreamMessage и TextMessage). При отправке сообщения из JMS в JMS заголовок JMS указывает тип сообщения. Если заголовок JMS отсутствует (что часто случается при отправке сообщения от производителя, отличного от JMS), клиент LLM JMS пытается вывести тип сообщения из содержимого. Обычно сообщение отображается как BytesMessage, но если сообщение начинается с спецификации UTF-8 или выглядит как XML, оно будет интерпретироваться как TextMessage. Предполагается, что текстовые сообщения закодированы в UTF-8......