Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

PubSub-Engine

PubSub servis koji može da opsluži proizvoljan broj klijenata.

Scenario rada aplikacije:

U aplikaciji su definisana tri ključna entiteta: Publisher, Subscriber i PubsubEngine. Publisher generiše željeni sadržaj, povezuje se na poznatu adresu PubsubEngine-a pomoću Socket-a, pa nakon toga taj sadržaj smešta u određenu strukturu podataka željenog Topic-a (Publish to Topic). Povezivanje na PubsubEngine kao i smeštanje podataka u strukturu odgovarajućeg Topic-a je implementirana korišćenjem niti koja konstantno osluškuje nove konekcije i potom smešta pristigli sadržaj u sturkturu odgovarajućeg Topic-a. PubsubEngine taj sadržaj dalje prosleđuje u Thread koji će za svakog pretplatnika, iz liste pretplaćenih, izvući nit iz ThreadPool-a koja je zadužena da mu prosledi sadržaj. Pretplatnik (Subscriber) se pretplaćuje na određene Topic-e (Subscribe to Topic), i na taj način daje do znanja PubsubEngine-u da želi da bude obavešten o svakom novom sadržaju koji prethodno stigne na taj Topic. Pretplatom na određeni Topic omogućuje da PubsubEngine može da ga obavesti ako Publisher izda novi sadržaj na Topic na koji je pretplaćen. Time biva dodan u listu pretplatnika na PubsubEngine. Novopristigli sadržaj koji određeni Publisher izdaje na odgovarajući Topic se smešta u Queue strukturu podataka tog Topic-a. Queue predstavlja FIFO (First-in-first-out) struktura podataka i njegovim elementima pristupamo istim redosledom kojim se oni čuvaju u kolekciju. Ovakav pristup je zgodan kod privremenog čuvanja podataka što, kao i sam FIFO pristup, u potpunosti odgovara potrebama naše aplikacije. Pored Queue-a za čuvanje Publisher-ovih sadržaja, Topic poseduje još i listu u kojoj čuva identifikacione brojeve svih njegovi pretplatnika (Subscribers). Prednost HashMap strukture jeste brzo dodavanje, iteriranje kao i brisanje elemenata unutar strukture. Pogodna je za dinamičko dodavanje novih elemenata. Dobra praksa je da se koristi za veći skup podataka.

pubsubengine

About

Publisher-Subscribe service that can serve an arbitrary amount of clients.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages