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
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 ?
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 ?
Jeszcze jedno chyba ostatnie szczegółowe pytanie i dam wam spokój
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ą
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ć
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ć
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ą ;P). 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.
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.