Do najważniejszych zalet takich
systemów jest to, że podczas komunikacji nie jest wymagane aby w tym samym czasie oba komunikujące się ze
sobą systemy działy. Aplikacja wysyłająca komunikat informujący o zmianie w swoim systemie wysyła go do
swojej kolejki wyjściowej nie wiedząc, czy aplikacja docelowa jest uruchomiona, czy nie i czy komunikat
został już przetworzony. W zadzie nawet ją to nie interesuje. Niezależnie, czy aplikacja docelowa działa,
czy nie, komunikat pozostaje w jej kolejce. Kiedy aplikacja docelowa zostanie uruchomiona może przeczytać
komunikat i wykonać odpowiednie działania.
Do omówienia zasady działania takich systemów kolejkowania ważne jest omówienie kilku terminów z nimi
związanymi. Menadżer kolejek, to proces uruchomiony na serwerze, nasłuchujący na odpowiednich protokołach na
połączenia sieciowe lub poprzez lokalne wywołanie API. Proces ten obsługuje podłączone do niego aplikacje,
jak również inne menadżery kolejek.
Aplikacje po połączeniu sie z procesem mają możliwość wykonania różnego rodzaju operacji na kolejkach.
Kolejka z kolei, to kolejny logiczny obiekt takich systemów. Do kolejki takiej można wysyłać komunikaty (dane),
z niej komunikaty pobierać lub je przeglądać. Oznacza to, ze każda aplikacja powinna mieć do pracy otwarte co
najmniej dwie kolejki, jedną do odczytywania z niej komunikatów, a drugą do wysyłania do niej własnych
komunikatów. Oczywiście tych kolejek może być więcej, wszystko to zależy od architektury systemu.
Podczas działania aplikacja czyta komunikaty z kolejki. Każde pobranie komunikatu oznacza usunięcie go z
kolejki co zapewnia ze konkretny komunikat zawsze zostanie przeczytany tylko raz. Przeglądanie z kolei odczytuje
komunikat z kolejki pozostawiając go cały czas w kolejce. Aby poprawić wydajność aplikacji można uruchomić ją w
kilku watkach co spowoduje, ze jednocześnie w danej chwili może być procesowanych wiele komunikaów poprzez
zrównoleglenie zadań.
Powrót
|