Klientów było wielu, serwer tylko jeden


IT, IT-DLA-ZIELONYCH / środa, 4 września, 2019

Klient i serwer, dwa pojęcia, które można usłyszeć w projekcie niemalże każdego dnia. Dzisiaj przyjrzymy się temu, co tak naprawdę oznaczają?

Zacznijmy od tego, że konstelacja klient-serwer jest architekturą oprogramowania, jedną z bardziej popularnych w IT. Architekturą, a więc pewnym porządkiem, układem „elementów”. Polega ona na takim działaniu systemu, że klient (aplikacja kliencka) wysyła do serwera żądania obsługi, w odpowiedzi na które serwer świadczy określone usługi.

Co to tak naprawdę znaczy? Spójrzcie na poniższy obrazek:

Klientem możemy nazwać aplikację webową działającą w Twojej przeglądarce internetowej. Może nim być również aplikacja mobilna na smartfona i tablet, o ile komunikuje się z serwerem na przykład w celu pobrania i zapisu danych.

Co taka aplikacja webowa i mobilna mają ze sobą wspólnego? Obydwie potrzebują do prawidłowego działania danych i obsługi funkcjonalności, które oferują swoim użytkownikom.

Weźmy sobie przykład aplikacji Filmweb. Dla prawidłowego działania odpytuje ona serwer o potrzebne dane, by zaprezentować nam poszczególne filmy. Umożliwia też wyrażanie opinii nt. filmów za pomocą chociażby liczby gwiazdek. Pozwala dodawać komentarze. Za dostępność tych wszystkich rzeczy odpowiada właśnie serwer! Natomiast to, co widzicie, prezentacja danych, obsługa interakcji z użytkownikiem to specjalność klienta.

Przypomnijcie sobie sytuację, gdy ostatni raz byliście offline. Jeśli tylko wcześniej aplikacja kliencka nie zapisała sobie (nie 'skeszowała’) danych, w dużej większości przypadków jedyne, co mogliście zobaczyć, to ładna informacja o potrzebie podłączenia do Internetu.

Co ważne, klientów jednego serwera może być wielu. Mówimy, że wiele różnych aplikacji klienckich może odpytywać jedno i to samo API serwera. To tak, jakbyśmy prowadzili działalność sprzedażową w sieci i zgłaszałoby się do nas wielu klientów z różnymi życzeniami.

Jednocześnie zupełnie inaczej niż przy sprzedaży internetowej serwer pozostaje w tej komunikacji bierny– nigdy sam z siebie nie rozpoczyna komunikacji z żadnym z klientów. Pasywnie czeka na żądania i dopiero, gdy nadejdą, zajmuje się ich obsługą. Komunikację zawsze inicjalizuje klient.

Bardzo często określenia klient i serwer używane się niemalże naprzemiennie z określeniami frontend i backend. Frontend jako aplikacja kliencka, natomiast backend jako aplikacja działająca na serwerze.

Kończąc ostatni szczegół- z klientami jest jak w życiu. Nie muszą oni pozostawać wierni tylko jednemu serwerowi, mogą korzystać jednocześnie z usług wielu serwerów 😉

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.