Публікація-підписка (шаблон проєктування)

Публікація-підписка (англ. Publish–subscribe, Pub/sub) — шаблон проєктування в архітектурі ПЗ, шаблон поведінки, що реалізує механізм передачі повідомлень, в якому відправники повідомлень, що називаються видавцями (publishers), не здійснюють пряме відправлення повідомлень приймачам, які називаються підписниками (subscribers). Замість цього опубліковані повідомлення розбиваються на категорії за класами, без знання про те, яким підписникам вони мають бути прийняті і чи взагалі будуть такі підписники. Аналогічно, підписники виявляють зацікавленість в певних класах повідомлень і приймають ті повідомлення, які їх цікавлять, без знання того, які видавці їх публікують. Шаблон сприяє отриманню ПЗ з більшою масштабованістю та динамічнішою топологію мережі[1].

Принципова схема механізму публікація-підписка в DDS

Механізм, покладений в основу Pub/sub, близький механізму черг повідомлень, який зазвичай застосовується в message-oriented middleware системах. Більшість систем передачі повідомлень підтримують у своїх API як pub/sub, так і черги повідомлень, як наприклад Java Message Service (JMS).

Фільтрація повідомлень

В моделі pub/sub, підписники зазвичай приймають лише підмножину усіх опублікованих повідомлень. Процес вибору повідомлень для прийняття та обробки називається фільтрацією. Існують дві типові форми фільтрації, що базуються на темі і на контенті.

В системах, що базується на темах, повідомлення публікуються в «теми» (іменовані логічні канали). Підписники в таких системах отримують всі повідомлення, опубліковані в теми, на які вони підписані; повідомлення передаються всім підписникам, підписаним на повідомлення теми. Відповідальність за класи повідомлень, на які можна підписуватись, покладена на видавця.

В системах, що базуються на контенті, повідомлення надаються підписникам, якщо атрибути таких повідомлень відповідають атрибутам, описаним підписником. Відповідальність за класи повідомлень, на які можна підписуватись, покладена на підписника.

Деякі системи є гібридами обох видів: видавці публікують повідомлення в теми, а підписники підписуються на кілька тем, описуючи атрибути бажаних повідомлень.

Див. також

Зноски

Посилання

🔥 Top keywords: Головна сторінкаЧемпіонат Європи з футболу 2024Спеціальна:ПошукВікіпедія:Культурна спадщина та видатні постаті (2024)Збірна України з футболуБріджертониЧемпіонат Європи з футболу 2020YouTubeУкраїнаЧемпіонат Європи з футболуЗбірна Румунії з футболуРебров Сергій СтаніславовичГлобальний саміт мируРадіо «Свобода»ДефолтРумуніяЛунін Андрій ОлексійовичНаціональна суспільна телерадіокомпанія УкраїниДень батькаДовбик Артем ОлександровичШевченко Андрій МиколайовичЯрмоленко Андрій МиколайовичЧемпіонат Європи з футболу 2024 (кваліфікаційний раунд)Мудрик Михайло Петрович138-ма зенітна ракетна бригада (Україна)FacebookЄрмак Андрій БорисовичСексВійськові звання України22-га окрема механізована бригада (Україна)Зінченко Олександр ВолодимировичТериторіальний центр комплектування та соціальної підтримкиДумками навиворіт 2Чемпіонат Європи з футболу 2016Список операторів систем розподілу України2024 у телебаченніMegogoСписок українських жіночих іменКиїв