Nowoczesny RSS
28/11/2005
E-mail. Jak na czasy, w których powstał był bardzo rewolucyjnym i doskonałym narzędziem. Nikt wtedy nie przejmował się różnymi aspektami protokołów do jego obsługi (pop i smtp). Najbardziej kulało (i kuleje) bezpieczeństwo. Lecz gdyby nie on dzisiejszy świat byłby zupełnie inny, uboższy. Pomimo swoich wad wniósł wiele dobrego.
Wydaje mi się, że coś podobnego obserwujemy w odniesieniu do rss’a. Z racji na moje niewielkie doświadczenie w sprawach sieciowych proszę moje rozważania brać z przymróżeniem oka, weryfikować to co piszę i zgłaszać ewentualne nieścisłości.
Rss to bardzo prosta technologia. Bardzo łatwo nauczyć się jego składni (piszemy oczywiście w XMLu;), a co za tym idzie łatwo napisać programy obsługujące rss. Zarówno te, które mają go czytać jak i te, które mają go generować.
Ja dopatruję się błędu o wiele głębiej niż w samym formacie tego pliku. Jak zwykle zaglądam do korzeni. Rss miał na celu ułatwienie nam dotarcia do jakiś informacji (jest prostszy niż typowa strona internetowa i musi zawierać pewne standardowe elementy). W tym znaczeniu sprawdził się znakomicie. Z założenia mieliśmy pewnie sprawdzać wszystkie źródła (feedy) po włączeniu komputera lub raz/kilka razy dziennie (tak jak to czyniliśmy w przypadku ręcznego przeglądania witryn). Niestety, społeczeństwo żądne informacji do ustawień swoich czytników wpisało sprawdzanie co minutę. Tym sposobem obciążenie serwerów (zapewne;) bardzo wzrosło. Niby taki rss to niewielki plik, sam tekst, ale jeśli mamy tysiąc użytkowników i każdy z nich co minutę każe nam go wysyłać to serwer nie ma nawet chwili wytchnienia ;)
Przypomina mi to sytucję pani na recepcji, do której 10 różnych osób co chwilę dzwoni z tym samym pytaniem: Czy jest już przesyłka xxx? Na miejscu takiej Pani wziąłbym numery telefonów do tych dziesięciu osób i zadzwonił do nich gdy przyjdą ich przesyłki. Zarówno ja nie siedziałbym ciągle na linii tylko spokojnie jadł drugie śniadanie jak i interesanci byliby zadowoleni z miłej i szybkiej obsługi. Czemu nie przenieść tego modelu do sieci?
No może nie dosłownie bo wtedy każdy klient musiałby mieć swój numer telefonu czyli jakiś otwarty port.
Mój model jest mniej więcej taki:
Klient łączy się z serwerem i mówi jakie informacje chce (od jakiej daty). Następnie serwer przesyła rządane informacje (ni mniej ni więcej niż interesuje klienta). Od tej pory klient już nic nie wysyła tylko słucha. Gdy na serwerze pojawią się nowe wiadomości klient otrzyma je poprzez ciągle otwarte połączenie tcp/ip. O ile mi dobrze wiadomo to zbyt dużo/żadne dane nie są wysyłane gdy mamy otwarte połączenie, ale nikt nic nie wysyła.
Obciążenie serwera/łącza redukujemy do wysyłanie jedynie istotnych danych zwiększając jedynie ilość utrzymywanych jednocześnie połączeń. Rozwiązanie to ma swoją wadę bo pojedyńczy serwer może utrzymywać ograniczoną ilość otwartych połączeń, ale jak widać na przykładzie serwerów jabbera nie jest to mała liczba ;)
Tylko netstat musiałby się bardziej narobić ;)
Entry Filed under: tech. .
Trackback this post | Subscribe to the comments via RSS Feed