Mediovski Technology

Chat – research

Data: 18 January 2010 12:48 PM 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.

2 Comments »

  1. Comment by paramah — 22 January 2010 @ 12:25 PM

    Mała nieścisłość:

    “Extensible Messaging and Presence Protocol (XMPP) (dawniej Jabber)” – to jest babol, aka “bezdura” :)

    XMPP to nie “dawniej Jabber”, tylko Jabber to komunikator oparty o standard XMPP.

    XMPP posiada już również dość sporą bazę standardów pozwalających np. na transportowanie danych audio (patrz: GTalk) zbiór XEP poniżej:

    http://xmpp.org/extensions/

    Reasumując – Jabber to nie protokół.

    A po więcej, polecam zagłębienie się w meandry sieci i poszperaniu. :)

  2. Comment by Łukasz Zmywaczyk — 25 January 2010 @ 10:52 PM

    Zachęcam do lektury: http://www.jabber.com/CE/AboutUs jak również http://xmpp.org/about/history.shtml wyjaśniającej historię protokołu XMPP. Zgadzam się, iż obecnie Jabber ma wydźwięk jedynie jako rozwiązanie klient/serwer.
    Możliwość opakowania danych w formie binarnej w XMLa wydaje się być rozwiązaniem wolniejszym niż natywne streamowanie danych po RTMP, ale przyznam się, że nie badałem wydajności owego rozwiązania.
    Postaram się znaleźć chwilę na zgłębienie tematu.
    Jeszcze raz dzięki za komentarz!

RSS feed for comments on this post. TrackBack URL

Leave a comment


7 + = eight

Get Adobe Flash playerPlugin by wpburn.com wordpress themes
RSS