Blog użytkownika dKc

dKc

dKc dKc 18.01.2020, 12:02
Shoutbox - wpis techniczny
336V

Shoutbox - wpis techniczny

Za upadek shoutboksa odpowiedzialny jest Dobermann. Można zamknąć temat.

Żartowałem. Choć nie do końca. W tym wpisie postaram się przedstawić moje spojrzenie na sprawę shouta, zamknięcia go oraz inne okołoshoutowe sprawy. Dlaczego odszedł, dokąd odszedł i co z tym fanem dalej zrobić? Będzie raczej bez wspominek (tu zostawiam Wam pole do popisu w komentarzach, jeśli jeszcze u dexxa nie napisaliśce wszystkiego o tym, że drzewiej było lepiej), za to skupię się na technicznych aspektach starając się wytłumaczyć czym tak naprawdę był shoutbox. Po kolei.

W tamtym roku miałem postanowienie związane z filmami. Tym razem moje postanowienie dotyczy tego, że bardziej skupię się na pracy (wiem o co zapytacie - to da się, żebym był jeszcze bardziej nudny? odp: niestety tak:( ), a ten wpis będzie małą rozgrzewką.

Mojego ojca wnuka pradziadka wnuk ma zaplecze informatyczne, więc zasięgnąłem od niego co nieco informacji i postaram się opowiedzieć mniej więcej w zrozumiały sposób jak działał shoutbox od strony technicznej. Ale zacznę od teorii.

Jak działają strony WWW?
Internet jest narzędziem, którego każdy używa na codzień, ale podobnie jak z prądem nie każdy wie do końca jak działa. Żeby wytłumaczyć działanie shouta przybliżmy (w bardzo uproszczony sposób) kilka pojęć, które może obiły się Wam o uszy:

serwer - to taki komputer, do którego podłączają się ludzie, żeby dostać się do jakichś informacji. Wchodząc na ppe.pl urządzenie z którego się podłączamy (smartfon, komputer czy tablet) odpytuje serwer i pobiera z niego informacje (dane). Wchodząc w jakiś link (news, wpis w Blogosferze, kiedyś shoutbox, gramoty, podstronę o grze etc.) odpytujemy serwer. Raz. Przy wejściu na jakąś podstronę. Zapewne zauważyliście, że wchodząc w jakiegoś newsa i przewijając do najciekawszej jego części, czyli do komentarzy trzeba chwilkę poczekać, żeby te się pojawiły. Dzieje się tak dlatego, że serwer jest odpytywany kolejny raz, tym razem do bazy (poniżej) idzie zapytanie o komentarze. Po drodze idzie jeszcze kilka(naście) zapytań. Po razie na każde.

klient - z powyższego przykładu smartfon, komputer czy tablet. Może nim być też bot (napięcie rośnie). Dokładniej tu chodzi o przeglądarkę z jakiej korzystamy, ale jak mówiłem - w tym tekście jest wiele uproszczeń w celu zachowania w miarę ciekawego rytmu.

baza danych - mówią, że w Internecie nic nie ginie. Wiecie dlaczego tak jest? To, że się logujecie, wszystkie Wasze komentarze, loginy etc. są przechowywane w pewnej czarnej skrzynce zwaną bazą danych. Żeby nie straszyć co można potem z takimi danymi zrobić i gdzie, kiedy, w ilu miejscach takie dane mogą być przechowywane skończę w tym momencie i ograniczę sie do określenia, że baza danych na ppe siedzi sobie na serwerze ppe i są na niej przechowywane newsy i komentarze. Baza często zespalana z serwerem. Tam gdzie serwer, tam i baza. Zazwyczaj. Nie musi być, ale zazwyczaj jest. Czasem baza bywa używana jako synonim do serwera czy backendu (frontend bywa używany do nazywania części klienckiej, taka dygresja)

kod źródłowy - znany też pod nazwą "kod" (bez politycznych skojarzeń). Ciąg literek, które przetłumaczone są na efekt finalny jakim jest na przykład strona ppe i jej składowe: newsy, obsługa komentarzy, bot.

Jeszcze może napiszę czym był shoutbox, bo są może osoby, które trafiły tu przypadkiem. Moi drodzy, roztargnieni czytelnicy - shoutbox to taki odpowiednik czata na ppe. Można było tam wejść, żeby w ciągu sekundy porozmawiać z innymi osobami. W tym miejscu należy wymienić przesiadujące często tam ostatnio persony takie jak dexx, Ifikrates, Ojciec-gracz, MałyTimmy, Carnage, Tomasz (sorry nie pamiętam dokładnego nicku, było kilku Tomaszy o podobnych nickach) czy... inne osoby o których zapomniałem, przepraszam. Czaty czy komunikatory, ogólnie miejsca bezpośredniego szybkiego kontaktu są najbardziej atrakcyjnymi dla użytkowników miejscami. O wiele ciekawszymi, niż fora czy grupy dyskusyjne. Wystarczy przypomnieć sobie newsa o najchętniej pobieramnych ostatnio apkach na Androida (na szczycie był Whatsupp - komunikator od Google'a).

Jak działa(ł) shoutbox?

Kiedy podsłuchało się podczas obecności shoutboksa lecące zapytania można było podejrzeć, że nasz klient, z którego wchodzimy odpytuje regularnie, bodaj co sekundę serwer w celu sprawdzenia czy są nowe wiadomości. Jeśli się pojawiły - to serwer zwracał dane (dotychczasowe + nowe wiadomości). Jeśli nie - to też zwracał dane (dotychczasowe wiadomości). Jeśli jeszcze sie nie uśmiechnęliście, złapaliście za głowę, ani nie zareagowaliście z gniewem to może wytłumaczę - pamiętacie przykład z wchodzeniem w newsa? Jest kilka zapytań. Każde po raz. Serwer wysłał co miał wysłać. Potem jesteśmy na danej podstronie przewijamy, czytamy albo odpowiadamy. Serwer odsapnął (do czasu wejścia na kolejną podstronę), a user też zadowolony (bynajmniej nie z poziomu newsów albo z tego, ze ktoś ma inną konsolę, ale to temat na inną historię). Na shoucie tak nie było. User wchodził i tykał kijem serwer co sekundę. I tak co ~1s serwer był odpytywany. Takie podejście w programowaniu nazywa się long polling. Posłużę się obrazkiem.

Long polling. To z lewej to klient, to z prawej to serwer. Request to zapytanie. Response to odpowiedź. Na obrazku są tylko dwa zapytania. Jest to równoznaczne dla włączenia przeglądarki przez jednego usera i jego pobycie na stronie shouta przez 2 sekundy.

 

Tak się działo w przypadku jednego użytkownika. To teraz wyobraźmy sobie kiedy dodamy więcej userów. O ile w przypadku przeciętnej ilości rozmówców pod koniec życia shouta, czyli ~5 osób wszystko działało ok to pewnie pamiętacie takie większe wydarzenia, na które w newsach zapraszano użytkowników - wspólne oglądanie E3, Playstation Experience czy jakieś inne rzeczy. Przy ok. 20 userach (może nawet przy mniejszej ilości) shoutbox zaczynał sie dławić. Zapytań była masa, a serwer nie nadążał odpytywać. Powodowało to zawiechy, przycinki oraz błędy w działaniu shouta. Generalnie podejście long polling jest przestarzałym podejściem, którego nie powinno się używać. Porównajmy to do DriveThru w Macu:

Podjeżdża jakieś ekskluzywne auto marki Passat, pan Janusz w garniturze składa zamówienie (wysyła zapytanie). Dostaje swoje jedzenie od pana ze słuchawką na uchu (dostaje odpowiedź). OK. Kolejny samochód. Wysyła zapytanie. Dostaje odpowiedź. Kolejny. Zapytanie. Odpowiedź. Zapytanie. Odpowiedź. Tak powinno być normalnie.

Na shoucie to wyglądało tak: nie podjeżdża samochód, a do okienka podchodzi osoba, krzyczy swoje zamówienie. Za chwilę bez czekania podbiega kolejna osoba i przez ramię tej pierwszej krzyczy (ang. shout, heh to było niezamierzone) swoje zamówienie. W międzyczasie podbiega cała grupka dzieciaków, osób, zwierząt czy do czego tam porównać userów ppe i krzyczy swoje. O ile osoba pracująca w Maku wyrobiłaby może za pierwszymi kilkoma razami to przy dwudziestym by już przestała wyrabiać. Nasz serwer po jakimś (dość szybkim pewnie) czasie by padł. Wzmożoną aktywność serwera nazywamy obciążeniem serwera. Zbyt duże obciążenie serwera ma fatalne skutki. Zgon na miejscu. Przykład może nieidealny, ale tylko taki przyszedł mi do głowy. Nie myślcie, że to reklama. Nie kupujcie w Maku, mają niedobre jedzenie i robią kurczaka z przemielonych kości. Mniejsza o to. W skrócie: im większy tłok, tym gorzej.

To znaczy kiedyś tak shout działał. jeśli potem już tak nie było to cały ten wpis nie ma sensu i można przerwać czytanie w tym momencie i dać mi minusa. :D Moim zdaniem takowe działanie było jedną z przyczyn odłączenia respiratora shoutboksowi. Być może główną, być może nie. (Nie)wiele osób się zastanawiało dlaczego właściwie odłączyli prąd bez podawania przyczyny. Moim zdaniem przyczyna była taka, ale może nadinterpretuję jak to mam w zwyczaju.

Kiedyś była jakaś ankieta o zmianach na shoutboksie i ktoś pamiętam, że proponował, żeby po 15 minutach nieaktywności wylogowywano użytkownika z shoutboxa. To jest logiczne w sumie, bo kiedy user włączy zakładkę w przeglądarce i zostawi ją otwartą na godzinę to przez godzinę serwer będzie odpytywany... 1 * 60 * 60 = 3600 razy. Sporo, jak na użytkownika, który nie korzysta z shoutboksa. Generalnie long polling to zło i tak się teraz nie robi.

Mówią, że każdy klik na ppe jest na wagę złota. To każda sekunda na ppe jest dokładaniem do interesu przez Rogera (tak naprawdę to chyba nie, ale chciałem, żeby zabrzmiało dramatycznie ;) ).

Myślicie, że to wszystko, ale niestety nie. Oto na scenie pojawia się pewien bohater tej historii, którego pojawienie się można skwitować opisem jednej z kart do Gwinta (ciekawe czy zgadniecie jakiej)...

Tagi: a zakład że perez nie zaplusuje? aplikacje internet pecet Perez Roger shoutbox strony www

Przejdź do strony
Oceń notkę
+ +17 -

Oceń profil
+ +123 -
dKc
Ranking: 52 Poziom: 73
PD: 48883
REPUTACJA: 22079