Jump to content

Джакарта Сообщения

Jakarta Messaging API (ранее Java Message Service или JMS API) — это Java интерфейс прикладного программирования (API) для промежуточного программного обеспечения, ориентированного на сообщения . Он предоставляет общие модели обмена сообщениями, способные решить проблему производитель-потребитель , которые можно использовать для облегчения отправки и получения сообщений между программными системами . [1] Jakarta Messaging является частью Jakarta EE и первоначально был определен в спецификации, разработанной в Sun Microsystems, а затем был принят в рамках процесса сообщества Java . [2]

Общая идея обмена сообщениями

[ редактировать ]

Обмен сообщениями — это форма слабосвязанной распределенной связи, где в этом контексте термин «коммуникация» можно понимать как обмен сообщениями между компонентами программного обеспечения. Технологии, ориентированные на сообщения, пытаются ослабить тесно связанные коммуникации (например, TCP сетевые сокеты , CORBA или RMI ) путем введения промежуточного компонента. Этот подход позволяет компонентам программного обеспечения взаимодействовать друг с другом косвенно. Преимущества этого заключаются в том, что отправителям сообщений не нужно точно знать своих получателей.

Преимущества обмена сообщениями включают возможность интегрировать разнородные платформы, уменьшать узкие места системы, повышать масштабируемость и быстрее реагировать на изменения. [3]

История версий

[ редактировать ]
  • СМС 1.0 [4]
  • JMS 1.0.1 (5 октября 1998 г.) [4]
  • JMS 1.0.1a (30 октября 1998 г.) [5] [6]
  • JMS 1.0.2 (17 декабря 1999 г.) [7]
  • JMS 1.0.2a (23 декабря 1999 г.) [8]
  • JMS 1.0.2b (27 августа 2001 г.) [9]
  • JMS 1.1 (12 апреля 2002 г.) [10]
  • JMS 2.0 (21 мая 2013 г.) [11] [12]
  • JMS 2.0a (16 марта 2015 г.) [13] [14]

JMS 2.0 в настоящее время поддерживается в рамках процесса сообщества Java как JSR 343. [15]

JMS 3.0 находится на ранней стадии разработки в рамках Jakarta EE. [16]

Элементы

[ редактировать ]

Ниже приведены элементы JMS: [17]

JMS-провайдер
Реализация интерфейса JMS для промежуточного программного обеспечения, ориентированного на сообщения (MOM). Поставщики реализуются либо как реализация Java JMS, либо как адаптер к MOM, отличному от Java.
JMS-клиент
Приложение или процесс, который создает и/или получает сообщения.
Продюсер/издатель JMS
Клиент JMS, который создает и отправляет сообщения.
Потребитель/подписчик JMS
Клиент JMS, который получает сообщения.
JMS-сообщение
Объект, содержащий данные, передаваемые между клиентами JMS.
JMS-очередь
Промежуточная область, содержащая отправленные сообщения, ожидающие прочтения (только одним потребителем). Как следует из очереди имен, сообщения доставляются в том порядке, в котором они были отправлены. Очередь JMS гарантирует, что каждое сообщение обрабатывается только один раз.
тема JMS
Механизм распространения для публикации сообщений, доставляемых нескольким подписчикам.

JMS API поддерживает две различные модели:

  • Точка-точка
  • Публикация и подписка

Модель «точка-точка»

[ редактировать ]

В системе обмена сообщениями «точка-точка» сообщения направляются отдельным потребителям, которые поддерживают очереди входящих сообщений. Этот тип обмена сообщениями основан на концепции очередей сообщений , отправителей и получателей. Каждое сообщение адресовано определенной очереди, и клиенты-получатели извлекают сообщения из очередей, созданных для хранения их сообщений. Хотя любое количество производителей может отправлять сообщения в очередь, каждое сообщение гарантированно будет доставлено и использовано одним потребителем. Очереди сохраняют все отправленные им сообщения до тех пор, пока они не будут использованы или пока не истечет срок их действия. Если для получения сообщений не зарегистрировано ни одного потребителя, очередь удерживает их до тех пор, пока потребитель не зарегистрируется для их использования.

Модель публикации и подписки

[ редактировать ]

Модель публикации и подписки поддерживает публикацию сообщений в определенной «теме» сообщения. Абоненты могут заявить о заинтересованности в получении сообщений, опубликованных по определенной теме сообщений. В этой модели ни издатель, ни подписчик не знают друг о друге. Хорошей аналогией является анонимная доска объявлений.

  • Ноль или более потребителей получат сообщение.
  • Между издателями и подписчиками существует временная зависимость. Издатель должен создать тему сообщения, чтобы клиенты могли подписаться. Абонент должен оставаться постоянно активным для получения сообщений, если только он не установил постоянную подписку. В этом случае сообщения, опубликованные, когда подписчик не подключен, будут перераспределяться при каждом повторном подключении.

JMS предоставляет способ отделения приложения от транспортного уровня предоставления данных. Java Одни и те же классы можно использовать для взаимодействия с разными поставщиками JMS, используя информацию интерфейса именования и каталогов Java (JNDI) для нужного поставщика. Классы сначала используют фабрику соединений для подключения к очереди или теме, а затем используют заполнение и отправку или публикацию сообщений. На принимающей стороне клиенты затем получают сообщения или подписываются на них.

RFC 6167 определяет jms: Схема URI для службы сообщений Java.

Реализации провайдера

[ редактировать ]

Чтобы использовать JMS, необходимо иметь поставщика JMS, который может управлять сеансами, очередями и темами. Начиная с версии Java EE 1.4, поставщик JMS должен присутствовать на всех серверах приложений Java EE. Это можно реализовать с помощью управления потоком сообщений архитектуры Java EE Connector , которая впервые стала доступна в этой версии.

Ниже приведен список распространенных поставщиков JMS:

См. также

[ редактировать ]
  1. ^ Карри, Эдвард. 2004. «Промежуточное ПО, ориентированное на сообщения» . В книге «Промежуточное программное обеспечение для коммуникаций» под ред. Кусай Х. Махмуд, 1–28. Чичестер, Англия: Джон Уайли и сыновья. два : 10.1002/0470862084.ch1 . ISBN   978-0-470-86206-3
  2. ^ «JSR 914: API службы сообщений Java (JMS)» . Программа Java Community Process . Проверено 31 июля 2018 г.
  3. ^ Ричардс и др., страницы 3–5.
  4. ^ Перейти обратно: а б «Служба сообщений Java» (PDF) . Сан Микросистемс . 5 октября 1998 г. Архивировано (PDF) из оригинала 24 февраля 1999 г. Проверено 31 июля 2018 г.
  5. ^ «Документация службы сообщений Java» . Сан Микросистемс. 30 октября 1998 г. Архивировано из оригинала 24 февраля 1999 г. Проверено 31 июля 2018 г.
  6. ^ «Источник службы сообщений Java — версия 1.0.1a» . Сан Микросистемс. 29 октября 1998 года. Архивировано из оригинала (ZIP) 16 августа 2000 года . Проверено 31 июля 2018 г.
  7. ^ «Служба сообщений Java» (PDF) . Sun Microsystems (опубликовано 17 декабря 1999 г.). 9 ноября 1999 г. Архивировано (PDF) из оригинала 23 августа 2000 г. Проверено 31 июля 2018 г.
  8. ^ «Документация службы сообщений Java» . Сан Микросистемс. 23 декабря 1999 г. Архивировано из оригинала 29 февраля 2000 г. Проверено 31 июля 2018 г.
  9. ^ «Служба сообщений Java» (PDF) . Сан Микросистемс. 27 августа 2001 г. Архивировано (PDF) из оригинала 9 октября 2022 г. Проверено 31 июля 2018 г.
  10. ^ «Служба сообщений Java» (PDF) . Сан Микросистемс. 12 апреля 2002 г. Архивировано (PDF) из оригинала 9 октября 2022 г. Проверено 31 июля 2018 г.
  11. ^ «Служба сообщений Java» (PDF) . Оракул . 20 марта 2013 г. Архивировано (PDF) из оригинала 9 октября 2022 г. Проверено 31 июля 2018 г.
  12. ^ «Финальная версия JMS 2.0» . Спецификация службы сообщений Java . 9 июня 2017 г. Проверено 31 июля 2018 г.
  13. ^ «Служба сообщений Java» (PDF) . Оракул. 10 марта 2015 г. Архивировано (PDF) из оригинала 9 октября 2022 г. Проверено 31 июля 2018 г.
  14. ^ «Выпуск с ошибками JMS 2.0 (версия a)» . Спецификация службы сообщений Java . 5 июля 2017 г. Проверено 31 июля 2018 г.
  15. ^ «JSR 343: Служба сообщений Java 2.0» . Программа Java Community Process . Проверено 31 июля 2018 г.
  16. ^ Монсон-Хефель, Ричард (6 декабря 2018 г.). «JMS 3.0: Принимайте участие!» . Томитрибе . Проверено 17 июля 2020 г.
  17. ^ Служба сообщений Java (JMS)
  18. ^ «Apache Qpid™: обмен сообщениями AMQP с открытым исходным кодом» .
  19. ^ Уоллис, Грэм. «Выбор системы обмена сообщениями: WebSphere MQ против шины интеграции служб WebSphere Application Server» . IBM DeveloperWorks .
  20. ^ «Программное обеспечение TIBCO для обмена сообщениями TIBCO Cloud™» .
  21. ^ «Служба корпоративных сообщений TIBCO™» .

Дальнейшее чтение

[ редактировать ]
  • Ричардс, Марк; Ричард Монсон-Хефель; Дэвид А. Чаппелл (2009). Служба сообщений Java, второе издание . О'Рейли. ISBN  978-0-596-52204-9 .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: b3e90fd5344aa233a0c4e7722cdd0ff3__1720706400
URL1:https://arc.ask3.ru/arc/aa/b3/f3/b3e90fd5344aa233a0c4e7722cdd0ff3.html
Заголовок, (Title) документа по адресу, URL1:
Jakarta Messaging - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)