Slide 1: „Jabber – programowalna, skalowna, bezpieczna, wieloprotokołowa platforma komunikacyjna czasu rzeczywistego”.
1
Slide 2: 1. 2. 3. 4. 5. 6.
Opis protokołu XMPP/Jabber. Przykłady serwerów OpenSource. Dodatkowe komponenty. Klienci protokołu XMPP/Jabber. Platforma komunikacyjna. Badanie wydajności, symulacja obciążenia,skrypty monitorujące. 7. Podsumowanie.
2
Slide 3: Opis protokołu XMPP/Jabber.
Jabber to otwarty opierający się na XML’u protokół, wykorzystywany głównie do natychmiastowego przesyłania informacji (Instant Messaging), oraz powiadamiania o obecności (presence) w czasie rzeczywistym. Specyfikacja protokołu zawarta jest w: - RFC 3920 (Core) (http://www.ietf.org/rfc/rfc3920.txt) - RFC 3921 (Messaging) (http://www.ietf.org/rfc/rfc3921.txt)
3
Slide 4: Cechy protokołu XMPP/Jabber.
OTWARTOŚĆ - protokół Jabber jest otwarty i dostępny publicznie na licencji GPL. Wszystko za sprawą Jeremmie’go Millera. W 1999 protokół został opublikowany światu. W roku 2002 nastąpiła standardyzacja protokołu przez Jabber Software Foundation (JSF), do tej pory protokół znany jest jako XMPP (Extensible Messaging and Presence Protocol )
4
Slide 5: Cechy protokołu XMPP/Jabber.
Dzisiaj istnieje wiele implementacji klientów, serwerów, oraz bibliotek programistycznych na licencji Open Source.
XMPPHP
gloox
Smack
Twisted Words
5
Slide 6: Cechy protokołu XMPP/Jabber.
DECENTRALIZACJA – komunikacja nie odbywa się wyłącznie za pośrednictwem jednego serwera. Uszkodzenie jednego nie paraliżuje całej sieci.
6
Slide 7: Cechy protokołu XMPP/Jabber.
Serwery XMPP tworzą jedna wielką rozległa sieć IM. Każdy może mieć własny!!!
7
Slide 8: Cechy protokołu XMPP/Jabber.
BEZPIECZEŃSTWO – komunikacja klient – serwer odbywa się za pomocą SSL, dodatkowo cześć klientów wspiera szyfrowanie transmisji z wykorzystaniem GPG/ PGP.
8
Slide 9: Cechy protokołu XMPP/Jabber.
Autoryzacja użytkowników za pomocą: GNU SASL (Simple Authentication and Security Layer ) TLS (Transport Layer Security – rozwiniecie protokolu SSL)
9
Slide 10: Cechy protokołu XMPP/Jabber.
TRANSPORTY – znajdują się po stronie serwera, umożliwiają komunikacje z innymi serwerami lub usługami.
10
Slide 11: Przykłady serwerów OpenSource.
Serwery typu High Avability (klastrowanie): - ejabberd (erlang) - tigase (java) Serwery nie klastrowalne lub częściowo (komponenty): - jabberd14 (C) - jabberd2 (C) - psyced (perl) - Openfire (LPC) - DJabberd (perl)
11
Slide 12: Komponenty serwerów.
Bramki do innych sieci: - jggtrans (gadu-gadu) - jit / pyicqt (ICQ) - pyaimt (AIM) - pymsn (MSN) - py-xmpppy-yahoo (Yahoo) - py-xmpppy-irc (IRC)
12
Slide 13: Komponenty serwerów.
Inne komponenty: - joda – słowniki (słowniki.onet.pl, ling.pl) - aspsms-t / ApaSMSAgent - Idavoll – Publish-Subscribe Service - Jabber Mail Component (JMC) - MUC - konferencje - j2j – Jabber to Jabber transport - proxy65 – socks5 file proxy
13
Slide 14: Klienty - porównanie.
Privacy Rules Psi Gajim Tkabber Miranda IM Coccinella TLS/SSL Multiple IM Systems Roster Managem ent Voice Chat
14
Slide 15: Platforma XMPP.
Serwer: - jabberd2 + mysql5 backend Komponenty: - jggtrans - pyicqt - MUC - joda - proxy65 - j2j - idavoll
15
Slide 16: Badanie wydajności.
-
jabsimul (client load and stress test simulator) Tsung (multi-protocol disturbed load testing tool)
16
Slide 17: Przykładowy raport Tsung.
Ilość żądań połączenia i ilość sesji połączonych
17
Slide 18: Przykładowy raport Tsung.
Obciążenie łacza
18
Slide 19: Przykładowy raport Tsung.
Ilość jednoczesnych połączeń w czasie
19
Slide 20: Monitoring.
Ilość aktywnych użytkowników Ilość zarejestrowanych użytkowników Czy połączenia nonSSL / SSL możliwe? Czy transport gg połączony do HUB’a gg ?
Czy komponenty serwera aktywne ?
Czy serwer odpowiada na żądanie Autoryzacji użytkowika ? Czas ostatnego sprawdzania.
20
Slide 21: Monitoring zasobów.
Zużycie pamięci
21
Slide 22: Monitoring zasobów.
Obciążenie procesora
22
Slide 23: Monitoring zasobów.
Liczba połączeń
23
Slide 24: Monitoring zasobów.
Obciążenie łącza
24
Slide 25: Podsumowanie.
dużo implementacji serwerów klienci dla każdej platformy systemowej biblioteki programistyczne dla każdego języka otwarty standard, otwarty protokół brak ograniczeń licencyjnych (open source, freeware) - architektura klient – serwer - komunikacja miedzy-domenowa (tak jak email) - 50+ milionów użytkowników - 100k serwerów
25
Slide 26: Podsumowanie.
Kto używa jabber’a ???
26