Seminarium: Systemy Rozproszone
21 listopada 2013, godzina 12:15, sala 4070
Kamil Szarek

Architektura aplikacji - system powiadomień



W ostatnich latach, w związku z lawinowym wzrostem popularności smartfonów, na naszych oczach narodziła się nowa klasa aplikacji, potocznie znana jako aplikacje mobilne. W szczególności, wchodząc dziś na dowolny popularny serwis internetowy, można być niemal pewnym, że istnieje towarzysząca mu aplikacja mobilna. Rolą takich aplikacji jest zazwyczaj udostępnianie użytkownikom wygodniejszego interfejsu, właściwego dla konkretnego typu telefonu komórkowego, zamiast uniwersalnej strony WWW. Dane wyświetlane w takich aplikacjach są najczęściej pobierane na życzenie użytkownika (np. przy uruchomieniu aplikacji) poprzez publiczne API serwisów internetowych. Takie podejście do przepływu danych z API do użytkowników nazywane jest architekturą pull.

Architektura pull, choć jest konieczna do działania tego typu aplikacji, nie jest jedynym możliwym rozwiązaniem. Istnieje alternatywne podejście - architektura push - w którym to API inicjuje komunikację z klientem. Wymaga to jednak poczynienia pewnych założeń. Architektura push daje programistom aplikacji korzystających z API nowe, ciekawe możliwości. Dla przykładu, w architekturze push użytkownik nie musi powtarzać operacji sprawdzenia, czy pojawiły się jakieś nowe dane - API może o nich powiadomić użytkownika, gdy tylko się pojawią.

Fragment API odpowiadający za realizację architektury push nazywany jest systemem powiadomień w czasie rzeczywistym. W trakcie prezentacji pokażę aktualne sposoby implementacji takich systemów przy tradycyjnych API w stylu REST. Omówione zostaną systemy powiadomień serwisów Facebook i Twitter. Ponieważ implementacja systemu powiadomień dla projektu USOS (a konkretniej, dla USOSapi - publicznego API USOS) jest przedmiotem mojej pracy magisterskiej, opowiem także o praktycznej stronie implementacji systemu powiadomień, ze szczególnym naciskiem na osiągnięcie wysokiej wydajności systemu.

Zapraszam!
Kamil Szarek