JavaRush /Blog Java /Random-PL /Serwery. Program edukacyjny dla manekinów

Serwery. Program edukacyjny dla manekinów

Opublikowano w grupie Random-PL
Poniżej przedstawiamy adaptowane tłumaczenie artykułu Nietechniczny przewodnik po serwerach autorstwa Kannana Chandrasegarana, programisty z Panopto. Należy pamiętać, że artykuł jest przeznaczony dla początkujących, którzy nie są zaznajomieni z koncepcją strony serwerowej aplikacji i serwerów. Serwery.  Program edukacyjny dla manekinów - 1

Z życia biurowego

Trudno być „nietechnicznym” w firmie IT, uwierz mi! Marketerzy, kierownicy sprzedaży, księgowi – to nie ma znaczenia – od czasu do czasu spotykają swoich doświadczonych technicznie kolegów. Mogą to być programiści lub administratorzy systemów.... Tak czy inaczej, „nietechnicy” czują się tak, jakby amputowano im ważną część mózgu. Albo wylądowali na nieznanej planecie, na której istniało inteligentne, niehumanoidalne życie. Lub…
Serwery.  Program edukacyjny dla manekinów - 2
Czasami oczywiście wszystko kończy się dobrze. Na przykład dziewczyna z pierwszej linii idzie korytarzem. Nic nie zwiastuje kłopotów: ona kieruje się w lewo, ty w prawo i jak najszybciej... Nie, tym razem tak się nie stało. Siedzisz już z nią przy stole i próbując przełamać niezręczną ciszę, pytasz: „A… czym właściwie się zajmujesz?” Zaczyna coś mówić, ale nie od razu rozumiesz, o czym mówi. Słowa wydają się znajome: interfejs użytkownika, aplikacje i – tak, Facebook to strona internetowa. Tak, są przyciski, menu... Jakoś rozpracowałeś zawiłości jej pracy, kiwnąłeś jej na pożegnanie i wasze ścieżki rozeszły się w korytarzach dużego biura.
Serwery.  Program edukacyjny dla manekinów - 3
Ale prędzej czy później nie będziesz miał tyle szczęścia: spotkasz inżyniera serwera. Lub programista back-end. Nie wiedząc, w jakiej dżungli się teraz znajdziesz, naiwnie zadajesz to samo pytanie i… w odpowiedzi otrzymujesz abrakadabrę. Słyszysz mnóstwo obcych słów, a przez głowę przebiegają Ci myśli: „Czy grzecznie jest pytać, co to jest API?”, „Cały czas korzystamy z „bazy danych”, prawda?”, „Kim do cholery jest ten Jason?” (JSON)??”. Twój znajomy inżynier próbuje Ci opowiedzieć o serwerach, ale nie rozumie, jak trudno jest Ci zrozumieć jego przemówienie wypełnione profesjonalnymi terminami. Prawdopodobnie słyszałeś już słowo „serwer”, ale jest ono używane w tak wielu różnych kontekstach, że trudno zrozumieć jego znaczenie. Cóż, spróbujmy zrozumieć to określenie.

W dół króliczej nory

Kiedy zwykły człowiek (czyli nie programista czy administrator) korzysta z aplikacji, widzi jedynie jej interfejs, czyli obraz reagujący na jakieś oczywiste (najczęściej) działania. Tak naprawdę pod pojęciem „aplikacja” użytkownicy zwykle rozumieją jej front-end, czyli przednią część, czyli opakowanie, z którym wchodzą w interakcję. Jednak użytkownicy niewiele wiedzą o tym, co znajduje się w środku, czyli o tym, co sprawia, że ​​aplikacja działa. Załóżmy, że wysyłasz mi wiadomość na przykład za pośrednictwem Whatsapp lub Viber. Wygląda na to, że wiadomość przychodzi z Twojego smartfona do mojego. Przyjrzyjmy się bliżej temu procesowi. Załóżmy, że wysyłasz mi wiadomość, gdy mój telefon jest wyłączony, a następnie sam wyłączasz smartfon. Włączam więc telefon i nadal otrzymuję Twoją wiadomość, chociaż nasze telefony nie działały w tym samym czasie. Wygląda na to, że czegoś nam brakuje! To jest to „coś”, czego nam brakowało – back-end czyli serwer.
Serwery.  Program edukacyjny dla manekinów - 4
Kiedy programiści mówią o front-endzie i back-endzie, mają zazwyczaj na myśli oddzielenie części użytkownika aplikacji od logiki programu. Zatem front-end jest częścią interfejsu aplikacji, a back-end jest częścią serwerową.

Serwery

Zasadniczo serwer to maszyna obliczeniowa, komputer podłączony do Internetu i stale włączony.
Dwa główne zadania serwera to przechowywanie danych i komunikacja.
Serwery.  Program edukacyjny dla manekinów - 5
Wysyłasz wiadomość poprzez Whatsapp lub Viber, aplikacja na Twoim smartfonie wysyła wiadomość do serwera, na którym jest przechowywana. Kiedy Viber zainstalowany na moim smartfonie łączy się z serwerem, wysyła mi wszystkie zapisane wiadomości.
Serwer jest „stacją bazową”, z której uruchamiana jest aplikacja
Gdy aplikacja wymaga jakichkolwiek informacji, kontaktuje się z serwerem. Kiedy aplikacja musi komunikować się z innym użytkownikiem aplikacji, to serwer umożliwia im komunikację. Terminy serwer, backend i API są często używane zamiennie.

Systemy przechowywania lub przechowywania danych

Głównym zadaniem serwera jest przechowywanie danych. Dotyczy to plików : zdjęć, filmów i dokumentów. Serwer przechowuje je w sposób zorganizowany przypominający foldery na komputerze, dzięki czemu aplikacje mogą uzyskać do nich dostęp. Informacje są również przechowywane na serwerze . Wszystkie aplikacje zawierają informacje ważne dla ich działania.
Serwery.  Program edukacyjny dla manekinów - 6
Informacje te można przedstawić w postaci zestawu tabel. Na przykład aplikacja musi przechowywać informacje o użytkowniku i jego haśle, aby mogło nastąpić uwierzytelnienie. Twoja aplikacja może być przewodnikiem po restauracjach, w takim przypadku serwer będzie przechowywać informacje o każdej restauracji. Oprócz samych informacji serwer rejestruje także relacje pomiędzy danymi. Przykładowo użytkownik polubi restaurację w aplikacji na smartfonie, a serwer zapamiętuje to połączenie pomiędzy restauracją a użytkownikiem.
Serwery.  Program edukacyjny dla manekinów - 7
Dzięki temu możesz odpowiedzieć na wiele pytań. Na przykład:
  • Ilu użytkowników polubiło tę restaurację?
  • Jakie restauracje lubi ten użytkownik?
  • Jakie kuchnie podobają się kilku użytkownikom jednocześnie?
Informacje i relacje między danymi są przechowywane w bazie danych (DB). Istnieje wiele typów baz danych, ale wszystkie są następujące:
  • może przechowywać informacje
  • może przechowywać relacje między danymi
  • może otrzymywać prośby o informacje i odpowiadać na nie jako pojedyncze dane lub jako zbiór danych, w zależności od żądania.
Istnieje wiele typów baz danych, każdy z nich ma swoje zalety i wady. Jeśli słyszysz terminy takie jak SQL, MySQL, MongoDB, CouchDB, Redis, to wiedz, że mówimy o bazach danych.

Interakcja

Kluczowym zadaniem serwera jest interakcja z aplikacją i innymi serwerami.
Serwery.  Program edukacyjny dla manekinów - 8
Wiele zadań aplikacji wymaga interakcji z serwerem. Na przykład, jeśli użytkownik czegoś szuka, zapytanie jest wysyłane do serwera i stamtąd pochodzi wynik. Jeśli użytkownik wysyła wiadomość do innego użytkownika, najpierw dociera ona na serwer. A następnie stamtąd trafia do aplikacji innego użytkownika, najczęściej w formie wysłanego powiadomienia. Interfejsy udostępniane przez serwer, dzięki którym aplikacje mogą z nim współdziałać, nazywane są zwykle interfejsami API . Otóż ​​niektóre funkcje interfejsu można powiązać z punktami końcowymi , np. z wyszukiwaniem czy autoryzacją w serwisie. Niewtajemniczonym ta interakcja może wydawać się dziwna. Dwa najpopularniejsze formaty interoperacyjności to JSON i XML.
Serwery.  Program edukacyjny dla manekinów - 9
XML po lewej stronie, JSON po prawej . Na pierwszy rzut oka formaty wydają się trudne do odczytania. Ważne jest, aby zrozumieć, że serwer to tylko komputer, taki sam jak Twój laptop czy smartfon. Aplikacja na Twoim telefonie akceptuje dane wprowadzane przez użytkownika za pomocą głosu, tekstu, rozpoznawania głosu lub dotyku na ekranie. Aplikacja przetwarza te informacje, a następnie udziela odpowiedzi w postaci obrazu na ekranie. Smartfon to komputer, który wchodzi w interakcję z człowiekiem, więc dane wejściowe i wyjściowe dostarczane są w wygodnej dla danej osoby formie. Serwer to maszyna obliczeniowa, która współdziała tylko z innymi komputerami. Człowiek postrzega informację dzięki takim czynnikom jak: rozmiar czcionki, kolor tekstu i formatowanie. Ale to nie ma żadnego znaczenia dla komputera.
Interakcja między serwerami odbywa się w formatach łatwych do przeanalizowania i zrozumiałych dla innych komputerów.

Aplikacja serwerowa

Jeśli chcesz stworzyć aplikację, która będzie działać na Twoim telefonie, będziesz potrzebować także aplikacji, która będzie działać na serwerze. Aplikacje serwerowe tworzone są przy użyciu języków i frameworków programowania po stronie serwera, popularnymi opcjami są Java , Ruby on Rails , Node.js , PHP , ASP.NET .
Serwery.  Program edukacyjny dla manekinów - 10
Można powiedzieć, że API to „drzwi” Twojego serwera i aplikacja wie, żeby do nich zapukać. Baza danych przechowuje wszystkie Twoje informacje. A aplikacja serwerowa to „mózg”, który wszystko łączy w całość. Odbiera i odpowiada na żądania wysyłane do niego poprzez API, dodaje i pobiera informacje z bazy danych oraz podejmuje decyzje. Na przykład, gdy aplikacja użytkownika przesyła dane logowania, żądanie przechodzi przez interfejs API, a prawidłowe dane logowania są przechowywane w bazie danych. Zadaniem aplikacji serwerowej jest ich porównanie i odpowiednie zareagowanie na aplikację korzystającą z API.

Sprzęt komputerowy

Serwery.  Program edukacyjny dla manekinów - 11
Kiedy słyszysz słowo „serwer”, prawdopodobnie wyobrażasz sobie ten obraz: szafki z migoczącymi światłami w zamkniętym pomieszczeniu. Prawdopodobnie dla dopełnienia obrazu brakuje tylko Toma Cruise'a, który zejdzie z sufitu i coś ukradnie. Wiele dużych firm posiada własne serwery i całe centra danych (te ogromne pomieszczenia z migoczącymi szafami). Facebook i Google mają setki serwerów na całym świecie. Jeśli prowadzisz ogromną usługę z milionami użytkowników, prowadzenie własnych serwerów może być znacznie tańsze i zapewniać lepszą wydajność. Zamiast utrzymywać własne serwery, wielu programistów korzysta z usług w chmurze. Usługi takie jak Amazon Web Services, Azure i Digital Ocean oferują możliwość korzystania z „serwerów wirtualnych”. Usługi te są właścicielami i konserwacją sprzętu, a programista po prostu ładuje na niego aplikację serwerową. Niektórzy dostawcy usług udostępniają backend jako usługę, dzięki czemu możesz mieć prosty backend bez konieczności samodzielnego pisania aplikacji backendowej.

Czy wszystkie aplikacje wymagają backendu?

Większość aplikacji, które znasz, prawdopodobnie ma komponent zaplecza. Oczywiście można znaleźć programy bez części serwerowej. Na przykład niektóre aplikacje zwiększające produktywność. Łatwy sposób sprawdzenia, czy aplikacja ma zaplecze, wygląda następująco:
Czy aplikacja będzie nadal działać, jeśli przełączysz się na tryb samolotowy?
Jeśli odpowiedź brzmi „nie”, oznacza to, że aplikacja na pewno posiada serwer backendowy.
Serwery.  Program edukacyjny dla manekinów - 12
Mam nadzieję, że teraz rozumiesz, czym jest zaplecze aplikacji. Może następnym razem, gdy spotkasz innych programistów, będziesz w stanie nie tylko zrozumieć, o czym mówią, ale także użyć w rozmowie jakiegoś cholernego „Jasona”.
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION