Co to jest PUSH?

Nie będę się rozpisywać o standardach, to można znaleźć wszędzie w sieci. PUSH w przypadku aplikacji mobilnych pozwala na wysyłanie do użytkownika powiadomień, serwer wysyła do użytkownika informację o jakimś zdarzeniu które może go zainteresować. Oczywiście samo pojęcie jest bardziej rozległe, ale w tym przypadku odsyłam do innych zasobów internetu, tutaj spojrzenie na PUSH w sposób prosty i czysto praktyczny, czyli krok po proku.

Zaletą usług typu push jest możliwość zadeklarowania preferencji odnośnie pobieranych informacji, ich ilości oraz czasu pomiędzy kolejnymi pobraniami. Funkcja ta powszechnie nazywa się subskrypcją – użytkownik subskrybuje wybrane kanały oferowane przez dany serwer, który w momencie, kiedy pojawiają się na nim nowe dane wypycha je do urządzenia klienta. W przypadku urządzeń mobilnych jest to realizowane przez dostawcę rozwiązań (np. Apple lub Google) dlatego w obu tych przypadkach potrzebujemy odpowiedniej konfiguracji naszej aplikacji oraz urządzenia klienta, ale o tym później.

Ogólna zasada działania PUSH’a pokazana jest poniżej (grafika dostępna na stronie Apple Push Notification Service

PUSH

Nasza aplikacja czyli provider wysyła informację do APN czyli sieci dostawcy (np. Apple lub Google) która przekazuje informację do urządzenia klienta. Wygląda to prosto, jednak wymaga zrozumienia mechanizmu przekazywania informacji pomiędzy providerem a klientem. Wymiana ta wymaga dobrego mechanizmu autoryzacji, aby do klienta nie docierały nie pożądane informacje lub informacje z niewiadomego źródła. Dlatego cała komunikacja jest tworzona za pomocą TLS

TLS, czyli Transport Layer Security

Transport Layer Security to stadard transmisji danych zapewniający ich poufność oraz integralność. Pozwala uwierzytelniać serwer oraz klienta. Zasada działania protokołu pokazana jest na diagramie poniżej.

TLS

Jak widać sam TLS wymaga odpowiedniego zestawu kluczy, które pozwalają na identyfikację nadawcy i odbiorcy informacji którą chcemy wysłać i/lub odebrać.

PUSH