Możliwości biznesowe w aplikacjach Real-Time

Możliwości biznesowe w aplikacjach Real-Time

Technologia Real-Time bardzo dynamicznie się rozwija w ostatnim czasie. Wiele dużych koncernów wdraża nowoczesne techniki przekazywania informacji tak aby transmisja odbywała się jak najszybciej. Użytkownik aplikacji ma wrażenie, że dane odczytywane i zapisywane są na żywo, bardzo szybko, praktycznie niezauważalnie, w tle. W czasach gdy potrzebujemy i oczekujemy szybkości od technologii praktyka “Real-Time” jest czymś na czym warto się skupić.

Czym jest real-time w aplikacjach?

Aplikacje real-time cechują się nadzwyczajną prędkością odczytu i zapisu danych. W sumie w aplikacjach tych nie wykorzystuje się defacto odczytu. Jedynie subskrybujemy się i nasłuchujemy na wydarzenia, akcje wywołane przez system lub innego użytkownika. Czy obserwowałeś kiedyś notowania giełdy papierów wartościowych na żywo? Z wykorzystaniem Real-Time jest możliwe uzyskanie efektu dynamiki danych tak jak właśnie tam między innymi można to zaobserwować. Jedynie nasłuchujemy na zmianach danych, a efekt widoczny jest natychmiast na ekranie. Na szczególną uwagę w takich aplikacjach zasługuje fakt, że to inni użytkownicy mogą zmieniać dane, a u Ciebie te dane będą się pokazywały bez konieczności odświeżania strony w przeglądarce, bez konieczności wykonywania jakichkolwiek akcji. Istnieje szereg branż, w których takie rozwiązania można zastosować. Możliwości są praktycznie nieograniczone.

Typowe przykłady z życia, w których można wykorzystać “Real-Time”

  1. Car sharing – aplikacje obsługujące zbiorowy transport są tutaj świetnym przykładem. Dzięki wykorzystaniu Real-Time aplikacja daje użytkownikowi natychmiastowy feedback gdzie dokładnie znajduje się pojazd kierowcy na mapie, czy jest blisko, czy ma jakieś opóźnienia. Użytkownik aplikacji jest w stanie lepiej zaplanować czas oczekiwania na transport.
  2. Stock exchange – giełdy papierów wartościowych to bezprecedensowi liderzy w dostarczaniu informacji na żywo. Maklerzy potrzebują danych natychmiast, bez opóźnień ponieważ tam każda milisekunda się liczy i jest na wagę złota. Aplikacje wykorzystujące zapis i odczyt danych Real-Time w tym przypadku zyskują ogromną przewagę w stosunku do tradycyjnych.
  3. Wyniki meczów i zakłady bukmacherskie – portali, które prezentują wyniki meczów na  żywo jest wiele, jednak w przypadku informowania kibiców o przebiegu wydarzenia w trakcie jego trwania z szybkością komentatora sportowego jest dużym wyzwaniem. Szybkość działania systemów jest tu kluczowy w przekazywaniu informacji. Real-Time w tym przypadku sprawdzi się nadzwyczaj dobrze.
  4. Czat – każdy z użytkowników internetu spotkał się i korzystał z tak popularnych aplikacji jak czaty. Jest to świetny przykład interakcji dwóch lub więcej użytkowników sieci na żywo za pomocą internetu. Opóźnienia mogą być tu większe niż w przypadku giełdy czy wyników sportowych jednak w komunikacji przez czat również dążymy do jak najszybszego przekazywania informacji. 
  5. Gry na żywo – branża e-sportowa rozwija się w bardzo szybkim tempie. Gry multiplayer są coraz bardziej popularne, co przekłada się na poszukiwanie przez twórców nowych i ultra szybkich rozwiązań. Natychmiastowy czas reakcji jest tu kluczowy.

Jak można wykorzystać Real-Time w aplikacjach biznesowych?

Aplikacje biznesowe niczym nie odbiegają od powyższych przykładów. Każdy chciałby widzieć wyniki jak najszybciej na swoim ekranie. Często algorytmy w aplikacjach internetowych są bardzo skomplikowane, co przekłada się na spadek wydajności aplikacji. Wdrożenie nowoczesnych technologii przetwarzania danych może przyczynić się do zwiększenia możliwości systemu, tym samym do osiągnięcia większych zysków. Aplikacje Real-Time bardzo dobrze spisują się podczas gdy wielu użytkowników pracuje nad jednym kontekstem. Świetnie to widać np. w aplikacjach Google służących do edycji tekstu, takie jak Google Docs. Użytkownicy widzą swoje zmiany na bieżąco, otrzymując możliwość wspólnego jednoczesnego kontrolowania powstałej treści. Użytkownik zainteresowany zmianami w aplikacji dostaje powiadomienia natychmiast kiedy one mają miejsce. Niezwykle przydatną funkcjonalnością systemów Real-Time jest wzajemne informowanie aktualnie korzystających osób o nowych akcjach, które na bieżąco zachodzą w aplikacji np. Ktoś dodał jakiś rekord lub usunął jakieś dane – wtedy system jest w stanie na żywo pokazać co zostało zmienione, zablokować niektóre elementy lub je uaktywnić bez potrzeby interakcji człowieka, który chce odczytać te dane. Dodatkowo ważnym elementem w takich aplikacjach jest asynchroniczność. Dzisiaj nikt nie chce długo czekać, na nic, a jeśli akcje w aplikacji trwają zbyt długo to użytkownik się niecierpliwi. Idealnym rozwiązaniem jest w tym wypadku odłożenie procedury, aby ta działała w tle, a użytkownik systemu mógł kontynuować pracę w aplikacji. Gdy algorytm zakończy swoją pracę pojawi się notyfikacja według tego stanu lub system sam zareaguje w danym momencie na rezultat. 

Możliwości opisane powyżej można uzyskać za pomocą zastosowania Firebase od Google. Jest to bardzo praktyczne narzędzie do tworzenia aplikacji. Możemy stworzyć każdą aplikację czy to webową czy mobilną przy użyciu ich bazy danych Real-Time Database. Sam Firebase jest w stanie za nas zrobić wiele out of the box w kierunku uruchomienia naszej nowej aplikacji jako Real-Time. Moim zdaniem warto się temu przyjrzeć.

To sum up.

Aktualnie bardzo duży nacisk kładzie się na szybkość odpowiedzi aplikacji. Żaden użytkownik nie chce długo spędzać na ładującym się w nieskończoność ekranie aplikacji. Istnieje wiele technik przyspieszenia ładowania się danych oraz technik usprawniających wydajność aplikacji. Jednym z nich jest właśnie koncepcja Real-Time, gdzie dane tak naprawdę płyną ciągle. Użytkownicy mają odnosić wrażenie, że aplikacja działa bardzo szybko, bez zbędnych opóźnień, a przede wszystkim niezawodnie.