Популярные ответы
Java Message Service (JMS) — спецификация программного обеспечения, предназначенного для обмена сообщениями. Входит в состав Java Platform, Enterprise Edition.
JMS определяяет две модели обмена сообщениями: point-to-point и publisher-subscriber.
Модель point-to-point действует следующим образом.
- Программный модуль-отправитель передает сообщение, после чего оно попадает в очередь. С одной очередью могут работать несколько отправителей.
- Сообщение доставляется программному модулю, который зареегистрирован как получатель, или адресат. Если получатель не зарегистрирован, сообщение будет сохранено в очереди. Считается, что получатель может быть только один, однако существующие реализации JMS не препятствуют одновременной регистрации нескольких модулей для получения сообщения из очереди. Если такая ситуация имеет место, сообщение будет доставлено только одному из получателей (какому именно — определяется особенностями конкретной реализации JMS).
- После получения сообщения адресат оповещает очередь. В зависимости от выбранного режима, оповещение осуществляется либо автоматически, либо получатель делает это явным образом.
Модель publisher-subscriber действует следующим образом.
- Подписчик (subscriber) подписывается на определённую тему (topic).
- Издатель (publisher) передает своё сообщение. Его получают все подписчики этой темы.
- Существует два режима доставки сообщений подписчикам.
- Первый режим (используется по умолчанию). В момент отправки подписчик должен работать, в противном случае он не получит сообщение.
- Второй режим (durable subscriber). Если в момент отправки подписчик не работает, сообщение не пропадает и дожидается активизации подписчика.
На данный момент (июнь 2015 года) последней версией спецификации является JMS 2.0 (принятая 21 мая 2013 года).
Источники: