Gdzie leży problem?
Na przełomie ostatnich lat praca człowieka stała się co raz bardziej mobilna ze względu na rynek IT, który bardzo dynamicznie się rozwija i dostarcza jeszcze bardziej zaawansowane technologie ułatwiające ludziom pracę. Wiele osób już nie korzysta tylko i wyłącznie z komputera, który posiada w biurze, ale również z urządzeń mobilnych typu smartfon czy tablet. W związku z tym oczekuje się, że najważniejsze mechanizmy zostaną powielone również podczas pracy na urządzeniach tego typu. Do takich mechanizmów możemy z pewnością zaliczyć pocztę elektroniczną, a co za tym idzie, powiadomienia odnośnie nowych wiadomości w czasie rzeczywistym.
Jednakże, trzeba mieć na uwadze fakt, że aplikacje nigdy nie działały szczególnie dobrze w tle na smartfonach i tabletach. Dzieje się tak, ponieważ monitor procesora przenosi aplikacje w tło i ostatecznie je wyłącza, co wiąże się dodatkowo z utratą powiadomień w czasie rzeczywistym. Przyczynia się to do poprawy wydajności i zmniejszenia zużycia energii urządzenia, ale z drugiej strony jest to zazwyczaj duży problem, ponieważ użytkownicy potrzebują być stale informowani np. o nowej zawartości w skrzynce pocztowej. W tej sytuacji użytkownik nie dowiaduje się o nowej korespondencji dopóki ręcznie nie zsynchronizuje poczty.
Powyższe kwestie tyczyły się tylko platformy iOS do pewnego momentu. W odniesieniu do systemu operacyjnego Android, powiadomienia w czasie rzeczywistym funkcjonowały poprawnie do wersji 7.0 włącznie. Jednakże wraz z pojawieniem się wersji systemu oznaczonej numerkiem 8.0, Google wdrożył nowe standardy, co sprawiło, że problem wystąpił również na tej platformie.
Jest rozwiązanie!
Aby sprostać nowym wymogom oraz oczekiwaniom użytkowników, VMware stworzył komponent o nazwie Email Notification Service 2, który pozwala na otrzymywanie powiadomień w czasie rzeczywistym w aplikacji Boxer – Workspace ONE.
Trochę o architekturze
Komponent Email Notification Service 2 w odróżnieniu od poprzednika jest o wiele bardziej elastyczny i bezpieczny. Poniżej przedstawiony został szczegółowy opis zawierający sposób funkcjonowania komponentu, o którym jest mowa w tym artykule.
- Urządzenie negocjuje klucze szyfrujące z serwerem ENS.
- Urządzenie umieszcza dane uwierzytelniające oraz inne wymagane informacje w zaszyfrowanym pakiecie i wysyła je do serwera ENS.
- ENS rejestruje się do subskrypcji „Push” na Exchange Web Services (EWS).
- Exchange informuje serwer ENS o nowych wiadomościach e-mail, co powoduje, że ENS odszyfrowuje powiadomienia i wykorzystuje dane uwierzytelniające użytkownika do przygotowania pobrania e-mail.
- ENS pobiera e-mail na podstawie konfiguracji (temat, nadawca, podgląd, itp.)
- ENS wysyła szczegóły wiadomości do swojej usługi powiadamiania (AWS SNS), która będzie korzystać z Apple Push Notification Service (APNS) dla iOS lub Firebase Cloud Messaging (FCM) dla systemu Android.
Opcje wdrożenia: On-Premise czy chmura ?
Komponent ENSv2 zakłada wdrożenie zarówno we własnym jak i chmurowym środowisku. Obie metody mają swoje wady i zalety, aczkolwiek największymi cechami jakimi się różnią, to konieczność posiadania serwera bazy danych oraz serwera aplikacyjnego w przypadku rozwiązania On-Premise. Dodatkowo, aby móc zdecydować, które rozwiązanie jest lepsze dla organizacji, należy postawić dwa pytania:
- Czy pozwolimy na dostęp serwera ENS w chmurze do punktu końcowego Exchange Web Services (EWS) poprzez HTTPs/443?
- Czy pozwolimy na otrzymywanie i odszyfrowywanie pakietów w chmurze ENS, o których wspominaliśmy wcześniej, aby subskrybować i dostarczać powiadomienia?
Podsumowanie
Ze względu na standardy oraz różne obostrzenia, które charakteryzują platformy Android oraz iOS pod względem efektywności pracy, a co za tym idzie również działania aplikacji firm trzecich, oprogramowanie Boxer – Workspace ONE może funkcjonować w tle tylko przez ograniczony czas. W celu uniknięcia problemu związanego z brakiem otrzymywania powiadomień o nowej poczcie, VMware utworzył komponent Email Notification Service 2 (ENS2), który dzięki swojej elastyczności i niezawodności, może być wdrożony na różne sposoby, a ciągłość pracy użytkownika jest zapewniona nawet gdy aplikacja nie jest uruchomiona.