Mediovski Technology

Chat – research

Data: 18 Styczeń 2010 12:48 Autor: Łukasz Zmywaczyk | Kategoria: Flash,Serwer

1       Przegląd technologii

Extensible Messaging and Presence Protocol (XMPP) (dawniej Jabber) – otwarty, oparty na XML protokół komunikacji oraz powiadamiania o obecności w czasie rzeczywistym.

Real Time Messaging Protocol (RTMP) to zastrzeżony protokół stworzony przez Adobe Systems dla streamingu audio, wideo i danych, pomiędzy playerem Flash a serwerem.


1.1     Backend

1.1.1     Jabberd2

Jest to druga wersja Jabberd’a. Usługa ta pozwala na wydajną komunikację danych (tekstowych) poprzez protokół XMPP. Server napisany jest w czystym C. Potwierdzone wycieki pamięci. Duże opóźnienia przy dużej ilości klientów online (setkach użytkowników).

1.1.2     EJabberd2

Implementacja Jabber’a oparta na technologii serwerowej Erlang. Erlang jest językiem o bardzo dużej skalowalności i bardzo wysokim stopniu zoptymalizowania. Facebook wybrał Erlang na obsługę swojego chata. EJabberd2 zdobywa ogromną popularność, o czym dodatkowo świadczy fakt, że największy serwis (jabber.org) do obsługi komunikacji wybrał EJabberd2. Mankamentem tej technologii jest wysokie zużycie pamięci w porównaniu do Jabberd2. Minimalne zużycie procesora.

1.1.3     FMS

Komercyjna technologia służąca do komunikacji poprzez protokół RTMP. Pozwala na wymianę danych w formie binarnej, zarówno tekstu jak i streamu audio/video.  Wysoce wydajne rozwiązanie o prostym modelu skalowania.

1.2     Frontend (klient)

1.2.1     JavaScript / HTML

Istnieją proste aplikacje umożliwiające czatowanie w technologii JS i HTML. Żadnego z nich nie udało mi się uruchomić z defaultowymi instalacjami Jabberd2 oraz EJabberd2. Przy wykorzystaniu dostępnych bibliotek JS możliwe jest napisanie własnej aplikacji do obsługi chatu.

1.2.2     Flash

Komunikacja Flash’a z Jabberd2 i EJabberd2 nie jest możliwa bez rekompilacji tych usług uwzględniając specjalne łatki do kodu. Na domyślnych instalacjach Jabberd2 i EJabberd2 nie udało mi się zestawić połączenia między Flashem, a serwerem wspierającym XMPP.

1.2.3     Aplikacja desktopowa

1.2.3.1  Psi

Zainstalowałem komunikator PSI. Współpracował on bez problemowo z domyślną konfiguracją EJabberd2. Przetestowałem rejestrację nowych użytkowników, rozmowy pomiędzy dwoma użytkownikami , konferencje (pokoje z wieloma uczestnikami). Możliwe jest połączenie modułu chat z desktopową aplikacją (choćby PSI) i chatem wbudowanym w aplikację internetową – w aspekcie prowadzenia rozmowy z aplikacji online na WWW i aplikacji desktopowej.

2       Wtyczki

Do każdej opisywanej technologii możemy dopisywać własne rozwiązania (skrypty, wtyczki) rozszerzające standardową funkcjonalność – na przykład zapis historii rozmowy po stronie serwera.

4       Wydajność

Na przeprowadzenie realnych i wiarygodnych testów wydajnościowych potrzebujemy przeznaczyć min. 24h. Ze źródeł dostępnych na różnych blogach, wydaję się iż każda technologia zapewnia nam obsługę wolumina użytkowników na poziomie setek userów online.

RSS
Get Adobe Flash player