Публікація-підписка (англ. Publish–subscribe, Pub/sub) — шаблон проєктування в архітектурі ПЗ, шаблон поведінки, що реалізує механізм передачі повідомлень, в якому відправники повідомлень, що називаються видавцями (publishers), не здійснюють пряме відправлення повідомлень приймачам, які називаються підписниками (subscribers). Замість цього опубліковані повідомлення розбиваються на категорії за класами, без знання про те, яким підписникам вони мають бути прийняті і чи взагалі будуть такі підписники. Аналогічно, підписники виявляють зацікавленість в певних класах повідомлень і приймають ті повідомлення, які їх цікавлять, без знання того, які видавці їх публікують. Шаблон сприяє отриманню ПЗ з більшою масштабованістю та динамічнішою топологію мережі.
Механізм, покладений в основу Pub/sub, близький механізму черг повідомлень, який зазвичай застосовується в message-oriented middleware системах. Більшість систем передачі повідомлень підтримують у своїх API як pub/sub, так і черги повідомлень, як наприклад Java Message Service (JMS).
Фільтрація повідомлень
В моделі pub/sub, підписники зазвичай приймають лише підмножину усіх опублікованих повідомлень. Процес вибору повідомлень для прийняття та обробки називається фільтрацією. Існують дві типові форми фільтрації, що базуються на темі і на контенті.
В системах, що базується на темах, повідомлення публікуються в «теми» (іменовані логічні канали). Підписники в таких системах отримують всі повідомлення, опубліковані в теми, на які вони підписані; повідомлення передаються всім підписникам, підписаним на повідомлення теми. Відповідальність за класи повідомлень, на які можна підписуватись, покладена на видавця.
В системах, що базуються на контенті, повідомлення надаються підписникам, якщо атрибути таких повідомлень відповідають атрибутам, описаним підписником. Відповідальність за класи повідомлень, на які можна підписуватись, покладена на підписника.
Деякі системи є гібридами обох видів: видавці публікують повідомлення в теми, а підписники підписуються на кілька тем, описуючи атрибути бажаних повідомлень.
Див. також
- (реалізація pub/sub)
- RSS — добре маштабований протокол синдикації
- Atom — інший добре маштабований протокол синдикації.
- Подійно-орієнтоване програмування
- Спостерігач (шаблон проєктування)
- Data Distribution Service (DDS)
- Технологія Push
- Usenet
- Internet Group Management Protocol
Зноски
- Hohpe, G. and Woolf, B. Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions. — Pearson Education, 2012. — P. 106. — .
Посилання
- XMPP XEP-0060: Publish-Subscribe
- Python PubSub Publish-Subscribe брокер в мові Python, для повідомлень всередині програми (не в мережі)
- The OMG DDS portal
- radio.js — невелика JavaScript бібліотека PubSub.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Publikaciya pidpiska angl Publish subscribe Pub sub shablon proyektuvannya v arhitekturi PZ shablon povedinki sho realizuye mehanizm peredachi povidomlen v yakomu vidpravniki povidomlen sho nazivayutsya vidavcyami publishers ne zdijsnyuyut pryame vidpravlennya povidomlen prijmacham yaki nazivayutsya pidpisnikami subscribers Zamist cogo opublikovani povidomlennya rozbivayutsya na kategoriyi za klasami bez znannya pro te yakim pidpisnikam voni mayut buti prijnyati i chi vzagali budut taki pidpisniki Analogichno pidpisniki viyavlyayut zacikavlenist v pevnih klasah povidomlen i prijmayut ti povidomlennya yaki yih cikavlyat bez znannya togo yaki vidavci yih publikuyut Shablon spriyaye otrimannyu PZ z bilshoyu masshtabovanistyu ta dinamichnishoyu topologiyu merezhi Principova shema mehanizmu publikaciya pidpiska v DDS Mehanizm pokladenij v osnovu Pub sub blizkij mehanizmu cherg povidomlen yakij zazvichaj zastosovuyetsya v message oriented middleware sistemah Bilshist sistem peredachi povidomlen pidtrimuyut u svoyih API yak pub sub tak i chergi povidomlen yak napriklad Java Message Service JMS Filtraciya povidomlenV modeli pub sub pidpisniki zazvichaj prijmayut lishe pidmnozhinu usih opublikovanih povidomlen Proces viboru povidomlen dlya prijnyattya ta obrobki nazivayetsya filtraciyeyu Isnuyut dvi tipovi formi filtraciyi sho bazuyutsya na temi i na kontenti V sistemah sho bazuyetsya na temah povidomlennya publikuyutsya v temi imenovani logichni kanali Pidpisniki v takih sistemah otrimuyut vsi povidomlennya opublikovani v temi na yaki voni pidpisani povidomlennya peredayutsya vsim pidpisnikam pidpisanim na povidomlennya temi Vidpovidalnist za klasi povidomlen na yaki mozhna pidpisuvatis pokladena na vidavcya V sistemah sho bazuyutsya na kontenti povidomlennya nadayutsya pidpisnikam yaksho atributi takih povidomlen vidpovidayut atributam opisanim pidpisnikom Vidpovidalnist za klasi povidomlen na yaki mozhna pidpisuvatis pokladena na pidpisnika Deyaki sistemi ye gibridami oboh vidiv vidavci publikuyut povidomlennya v temi a pidpisniki pidpisuyutsya na kilka tem opisuyuchi atributi bazhanih povidomlen Div takozh realizaciya pub sub RSS dobre mashtabovanij protokol sindikaciyi Atom inshij dobre mashtabovanij protokol sindikaciyi Podijno oriyentovane programuvannya Sposterigach shablon proyektuvannya Data Distribution Service DDS Tehnologiya Push Usenet Internet Group Management ProtocolZnoskiHohpe G and Woolf B Enterprise Integration Patterns Designing Building and Deploying Messaging Solutions Pearson Education 2012 P 106 ISBN 9780133065107 PosilannyaXMPP XEP 0060 Publish Subscribe Python PubSub Publish Subscribe broker v movi Python dlya povidomlen vseredini programi ne v merezhi The OMG DDS portal radio js nevelika JavaScript biblioteka PubSub