Fronta a Topic jsou dva modely zasílání zpráv podporované JMS: 1. Model frontových zpráv typu bod-bod (PTP): S tímto modelem zpráv může jedna aplikace (tj. tvůrce zpráv) poslat zprávu jiné aplikaci (tj. spotřebiteli zpráv). V tomto modelu doručení je cílovým typem zprávy fronta (tj. instance implementační třídy cílového rozhraní je vytvořena instancí implementační třídy rozhraní Session zavolání metody createQueue a předáním názvu fronty). Zpráva je nejprve doručena do konkrétní fronty na straně serveru zpráv a odtud je zpráva doručena spotřebiteli, který tuto frontu poslouchá. Stejná fronta může spojit více producentů zpráv a konzumentů zpráv, ale zprávu lze doručit pouze jednomu uživateli zprávy. Pokud více konzumentů zpráv poslouchá zprávy ve frontě, server zpráv JMS určuje, který uživatel zpráv obdrží další zprávu na základě principu "kdo dřív přijde, ten dřív přijde". Pokud žádný uživatel zprávy frontu neposlouchá, zpráva zůstává ve frontě, dokud se uživatel zprávy nepřipojí k frontě. Tento model sdělování je tradiční model líných nebo průzkumných výsledků. V tomto modelu nejsou zprávy automaticky posílány uživateli zpráv, ale jsou vyžádány z fronty uživatelem zpráv. 2. Model zpráv o tématech publikování/odběru (publikace/sub): Díky tomuto modelu zpráv jsou aplikace schopny posílat jednu zprávu více uživatelům zpráv. V tomto modelu doručení je cílovým typem zprávy téma (tj. instance implementační třídy cílového rozhraní je vytvořena instancí implementační třídy rozhraní Session zavolání metody createTopic a předáním názvu tématu). Zpráva je nejprve publikována na konkrétní téma na serveru zpráv producentem zprávy, který ji poté doručí všem spotřebitelům, kteří se k tématu přihlásili. Tematické cíle také podporují dlouhodobé předplatné. Dlouhodobé předplatné znamená, že spotřebitel je zapsán do cíle tématu, ale může být neaktivní, když zpráva dorazí na cílové místo. Zpráva bude přijata, až bude spotřebitel opět aktivní. Pokud žádný ze spotřebitelů není zapsán v tématickém cíli, téma si uchovává zprávy pouze pro neaktivní spotřebitele, kteří si přihlásili dlouhodobé předplatné. Na rozdíl od modelu PTP zpráv umožňuje model veřejných zpráv a sub přijímat stejnou zprávu více účastníkům tématu. JMS drží zprávu, dokud ji neobdrží všichni účastníci tématu. Model veřejných zpráv a subreddit je v podstatě pushový model. V tomto modelu jsou zprávy automaticky vysílány a spotřebitelé zpráv nemusí aktivně žádat nebo dotazovat témata, aby získali nové zprávy. Konkrétní rozdíly jsou následující:
typ
| Téma
| Fronta | Přehled
| Publikovat Odebírat zprávy Publikovat zprávy o odběru
| Point-to-Point Point-to-Point
| Neexistuje žádný stát
| Data témat jsou ve výchozím stavu bezstavová.
| Data fronty jsou ve výchozím nastavení uložena jako soubor na MQ serveru, například aktivní MQ je obvykle uložen pod $AMQ_HOME\data\kr-store\data. Může být také nakonfigurován jako databázové úložiště.
| Záruka integrity
| Není zaručeno, že každé údaje zveřejněné vydavatelem bude předplatitelem přijato.
| Fronta zaručuje, že každý kus dat může být přijat příjemcem.
| zda se zpráva ztratí
| Obecně platí, že když vydavatel zveřejní zprávu k tématu, zprávu může přijmout pouze subreddit, který poslouchá téma. Pokud žádný sub neposlechne, téma je ztraceno.
| Odesílatel odešle zprávu cílové frontě a příjemce může zprávy na této frontě přijímat asynchronně. Zprávy ve frontě se neztratí, pokud je zatím nebude příjemce, který by je mohl vyzvednout.
| Pravidla přijetí zprávy
| Politika publikování a přijímání zpráv jedna na více – více odběratelů poslouchajících stejnou adresu tématu může přijímat zprávy zaslané vydavatelem. Subreddit přijímá oznámení na mq server
| Zásady publikace a přijímání zpráv jeden na jednoho, zprávy odeslané odesílatelem může přijímat pouze jeden příjemce. Po přijetí příjemcem MQ server oznámí MQ serveru o přijetí a MQ server smaže nebo provede jiné akce se zprávami ve frontě.
|
|