Queue a Topic sú dva modely správ podporované JMS: 1. Model frontových správ point-to-point (PTP): Pri tomto modeli správ môže jedna aplikácia (t. j. producent správy) odoslať správu inej aplikácii (t. j. spotrebiteľovi správ). V tomto modeli doručenia je cieľovým typom správy fronta (t. j. inštancia implementačnej triedy cieľového rozhrania je vytvorená inštanciou implementačnej triedy rozhrania Session zavolaním jej metódy createQueue a odoslaním názvu fronty). Správa je najprv doručená do konkrétnej fronty na strane servera správ a odtiaľ je správa doručená spotrebiteľovi, ktorý túto radu počúva. Tá istá fronta môže priradiť viacerých producentov správ a konzumentov správ, ale správa môže byť doručená iba jednému spotrebiteľovi správy. Ak viacerí konzumenti správ počúvajú správy vo fronte, server správ JMS určuje, ktorý spotrebiteľ správ dostane ďalšiu správu na základe princípu "kto prv príde, ten prv príde". Ak žiadny spotrebiteľ správy nepočúva frontu, správa zostáva vo fronte, kým sa spotrebiteľ správy nepripojí k fronte. Tento model komunikácie je tradične lenivý alebo prieskumný model. V tomto modeli správy nie sú automaticky odosielané spotrebiteľovi správ, ale sú požadované z fronty konzumentom správ. 2. Publikuj/predplat (pub/sub) model správy tém: Vďaka tomuto modelu správ môžu aplikácie posielať jednu správu viacerým spotrebiteľom správ. V tomto modeli doručenia je cieľovým typom správy téma (t. j. inštancia implementačnej triedy cieľového rozhrania je vytvorená inštanciou implementačnej triedy rozhrania Session zavolaním jej metódy createTopic a odoslaním názvu témy). Správa je najskôr publikovaná na konkrétnej téme na serveri správ producentom správy, ktorý ju následne doručí všetkým spotrebiteľom, ktorí sa prihlásili na odber témy. Tematické ciele tiež podporujú dlhodobé predplatné. Dlhodobé predplatné znamená, že spotrebiteľ je zapísaný do cieľa témy, ale môže byť neaktívny, keď správa dorazí na cieľové miesto. Správa bude prijatá, keď bude spotrebiteľ opäť aktívny. Ak žiadny zo spotrebiteľov nie je zaregistrovaný v téme, téma si zachováva správy len pre neaktívnych spotrebiteľov, ktorí sa prihlásili na dlhodobé predplatné. Na rozdiel od modelu PTP správ, model verejných a sub správ umožňuje viacerým účastníkom prijímať tú istú správu. JMS uchováva správu, kým ju nedostanú všetci predplatitelia témy. Model publikácií/sub správ je v podstate push-model. V tomto modeli sú správy automaticky vysielané a spotrebitelia správ nemusia aktívne žiadať alebo skúmať témy, aby získali nové správy. Konkrétne rozdiely sú nasledovné:
typ
| Téma
| Queue | Prehľad
| Zverejniť Prihlásiť sa na odber správy Zverejniť správy o predplatnom
| Bod-bod-bod Bod-bod
| Neexistuje žiadny štát
| Dáta tém sú predvolene bezstavové.
| Dáta z fronty sa predvolene ukladajú ako súbor na MQ serveri, napríklad Active MQ je zvyčajne uložený pod $AMQ_HOME\data\kr-store\data. Môže byť tiež nakonfigurovaný ako databázové úložisko.
| Záruka integrity
| Nie je zaručené, že každý údaj zverejnený vydavateľom bude akceptovaný predplatiteľom.
| Queue zaručuje, že prijímateľ môže prijať každý údaj.
| či sa správa stratí
| Vo všeobecnosti, keď vydavateľ zverejní správu k téme, správu môže prijať iba subreddit, ktorý počúva tému. Ak nepočúva žiadny subreddit, téma sa stráca.
| Odosielateľ odošle správu cieľovej fronte a prijímateľ môže prijímať správy v tejto fronte asynchrónne. Správy vo fronte sa nestratia, ak ich momentálne nebude prijímať.
| Politika prijatia správy
| Politika publikovania a prijímania správ jeden ku viacerým – viacerí odberatelia počúvajúci tú istú tému môžu prijímať správy od vydavateľa. Sub dostane notifikáciu na mq server
| Pravidlá publikovania a prijímania správ jeden na jedného, správy odoslané odosielateľom môžu byť prijaté iba jedným prijímateľom. Po prijatí prijímateľom MQ server informuje MQ server o prijatí a MQ server vymaže alebo vykoná iné akcie na správach vo fronte.
|
|