Zasada działania GG


(Marek) #1

Witam

Wiem, że t dosyć rozległy temat jednak chciałbym poznać zasadę działania np. gadu-gadu.

Zapewne jest potrzebny jakiś serwer z bazą danych z którą łączy się aplikacja.

1 pytanie

Co nadzoruje tą bazę i wszystkie informacje? Czy może to być jakiś skrypt php ? Wydaje mi się, że byłoby to za wolne :slight_smile:

2 pytanie

Czy to aplikacja gg dodaje wpisy do bazy danych czy może wiadomość najpierw wędruje do jakiejś aplikacji, skryptu na serwerze, który dodaje wpisy ?

  1. wiem, że wysłana wiadomość najpierw wędruje na serwer a on ją przesyła dalej do odbiorcy. Co za program tym kontroluje ?

Pomóżcie zrozumieć mi dodawanie wpisów do bazy i zarządzanie tym. Na pewno jest również jakeś zabezpieczenie, przed rozsyłaniem spamu....i znowu....co tym kontroluje ?

Czy jest możliwe, że cała baza znajduje się gdzieś na serwerze a oni i "ten program zarządzający" znajduje się w innym miejscu ?


(Cedar) #2

Może tu znajdziesz odpowiedź na swoje pytania: http://toxygen.net/libgadu/protocol/ (4,5 sekundy w google)


(Marek) #3

To już czytałem ale nie ma tam odpowiedzi na moje pytania


(Zulowski) #4

jak nie ma, jak jest, jest tam wszystko, jakie pakiety sa przesyłane itd.

ogolnie masz

KLIENT <=======> SERVER <==========> KLIENT

NADAWCA <=====> SERVER <==========> ODBIORCA

wszystko idzie przez server, i z tego powodu, jak padnie, nie da się pisać :stuck_out_tongue:


(Marek) #5

Dziękuje za odpowiedzi :slight_smile:

To rozumiem

KLIENT <=======> SERVER <==========> KLIENT

NADAWCA <=====> SERVER <==========> ODBIORCA

wszystko idzie przez server, i z tego powodu, jak padnie, nie da się pisać

:slight_smile:

Chodzi mi teraz tylko o jedno :slight_smile:

Czy na tym serwerze jest jakiś skrypt np w php czy nadzoruje tą bazę jakiś program exe :slight_smile: ??


(Zulowski) #6

jest usługa, najprawdopodobniej napisana w C albo w C++, nie tylko php ma dostep do baz danych ;p


(Marek) #7

Jeszcze jedno chyba ostatnie szczegółowe pytanie :slight_smile: i dam wam spokój :slight_smile:

Wydaje mi się , że samo gg nie łączy się bezpośrednio z bazą danych. Program chociażby w kodzie musiałby zawierać login i hasło do bazy danych i musiałoby to być coś co nie często można zmieniać. Wg mnie gg łączy się bezpośrednio z jakąś aplikacją na serwerze gg i to ona łączy się dopiero z bazą

Czy dobrze rozumuje ?:slight_smile:


([alex]) #8

Tak, jak najbardziej. Cała komunikacja z serwerem jest na poziomie TCP/IP.


(Zulowski) #9

Zresztą popatrz na to, jakby to klient bezpośrednio mógł połączyć się z bazą danych na serverze, ktoś mógłby napisać wlasnego klienta, i im tam sporo namieszać, zapewne dostęp do bazy jest TYLKO I WYŁĄCZNIE przez ich aplikację serwerową, a baza danych jest nie dostepna z poziomu internetu.

A dodatkowo zwróć uwagę, na ilość serwerów gg, to wszystko musi ze sobą jakoś współgrać :slight_smile:


(Marek) #10

Czyli bazy danych są na localhost w ich serwerach ? Na stronie http://gg.thinkspire.org/ można zobaczyć stan serwerów gg.

Czyli rozumiem, że mają np. kilkanaście komputerów , każdy ma inny IP ?Jak to możliwe? Ja mam np. jeden adres IP zewnętrzny. W razie awarii jednego użytkownicy kierowani są na następny serwer. Ale w takim razie gdzie jest baza danych? Raczej nie możliwe jest aby była na każdym z tych komputerów ponieważ w razie awarii brakowałoby synchronizacji i bazy zaczęłyby się różnić.

Wiem, że to zagmatwane ale interesujące. Interesuje się informatyką i jak mnie coś dręczy to nie mogę spać :slight_smile:


(Zulowski) #11

Wybierz się na studia techniczne, kierunek Systemy Informatyczne, i się nauczysz :slight_smile:

Nikt tu Ci nie odpowie, jak to dokladnie jest w gg, bo to wiedzą tylko oni, sami to zaprojektowali, i to wdrożyli.


(Marek) #12

:slight_smile: Gdybym miał troszkę więcej czasu to bym się wybrał :slight_smile: Kiedyś chodziłem na AGH na informatykę ale musiałem zrezygnować więc szukam odpowiedzi na forach :slight_smile:

Nie chodzi mi o to dokładnie jak jest w gg tylko ogólnie o specyfikacje działania


(somekind) #13

Użytkownicy łączą się poprzez swoje aplikacje klienckie z serwerami, które obsługują ich żądania. Serwerów jest kilkanaście, aby mogły obsłużyć całą sieć (co im średnio wychodzi zresztą :stuck_out_tongue_winking_eye:). Zapewne pracują na nich specjalne aplikacje, z jednej strony obsługujące żądania użytkowników, a z drugiej łączące się z bazą danych. Baza danych zapewne umieszczona jest na oddzielnym serwerze czy raczej kilku/kilkunastu serwerach, bo baza jest raczej duża.

Obstawiam, że tak to mniej więcej jest, bo tak się realizuje tego typu systemy informatyczne.


(Pkolaczk) #14

Ogólnie to jest tak, że jest n serwerów na frontendzie i m serwerów bazodanowych. Powinno być tak, że każdy element jest zduplikowany - w razie jak padnie, to pozostałe go zastapią. Łącza często też się duplikuje (np. 2. niezależnych dostawców). Wtedy klienci widzą 2 różne IP (wpisane w kliencie GG - nie wiem jak tam jest, nie używam) - w razie jak nie można się połączyć z jednym, to łączy się z drugim. Na wejściu do sieci są 2 lub więcej load-balancery rozrzucające ruch na serwery frontendowe (każdy ma słój własny IP wewnętrzny, a czasem nawet więcej niż po jednym), później one się łączą z serwerami bazodanowymi. Jak się to dobrze zaprojektuje, łącznie z zasilaniem od 2 niezależnych dostawców + backup w postaci UPS + agregatu, to żeby położyć taki system, trzeba by walnąć dobrą bombą w budynek (a i też nie, bo można system rozproszyć też geograficznie, nie tylko logicznie).

Wielkość bazy nie ma nic wspólnego z wymaganiami na liczbę serwerów. Liczbę serwerów dobiera się w zależności od obciążenia i żądanego poziomu dostępności. Akurat w GG baza służy tylko do przechowywania profili / autoryzacji - więc to jest bez większego znaczenia, czy mają tam tysiąc wpisów, czy 50 mln.


(somekind) #15

JCoder , pozwolisz, że nie będę się tłumaczył z użytej elipsy :slight_smile: