В ходе развития технологий обмена сообщениями появились два типа моделей асинхронного обмена сообщениями: Точка-Точка и Публикация/Подписка. Эти модели описывают, каким образом провайдер системы обмена сообщениями распространяет сообщения к пунктам назначения, т. е. они описывают кратность связей отправитель-получатель. Приложение может использовать обе модели. В следующих разделах мы опишем модели Точка-Точка и Публикация/Подписка.
Точка-Точка
В модели обмена сообщениями Точка-Точка приложение-отправитель должно указать пункт назначения сообщения. Чтобы получить сообщение, приложение-получатель должно указать в ходе взаимодействия с провайдером тот же пункт назначения. Это означает, что здесь между отправителем и получателем существует связь один-к- одному. Это та ситуация, которая показана на рис. 8.2. В модели Точка-Точка пункт назначения обычно называется очередью.
Публикация/Подписка
В модели обмена сообщениями Публикация/Подписка приложение-отправитель публикует сообщения в пункте назначения. Несколько приложений-получателей могут подписаться на данный пункт назначения и получать копию всех публикуемых сообщений.
Когда сообщение приходит в пункт назначения, провайдер системы обмена сообщениями распространяет копию сообщения всем приложениям-получателям, которые подписались на данный пункт назначения. Это означает, что здесь существует потенциальная связь один-к-многим между отправителем и получателем. Однако возможна и ситуация, когда при поступлении сообщения подписчиков данного пункта назначения нет.
Обратите внимание, что эта ситуация отличается от той, которая показана на рис. 8.3. На рис. 8.3 изображено приложение-отправитель, взаимодействующее с несколькими получателями с применением модели Точка-Точка для каждого из них. На рис. 8.4 показана модель обмена сообщениями Публикация/Подписка.