Extensible Messaging and Presence Protocol
Extensible Messaging and Presence Protocol (XMPP) (старо име Jabber[1]) (джабер) е протокол за моментни съобщения и съобщения за състояние, оформен като свободен стандарт, базиран на XML. По данни на Jabber Software Foundation[2] основан на XMPP софтуер е инсталиран на хиляди сървъри в Интернет и се използва от над десет милиона души по цял свят. Протоколът е проектиран с възможности за разширение, очаква се добавяне на възможности за Voice over IP и прехвърляне на файлове.
История
Джереми Милър (Jeremie Miller) започва Jabber проекта през 1998 г.; първата общодостъпна версия е анонсирана през месец май 2000 г. Основният продукт на работата по проекта е jabberd – сървър, към който се свързват XMPP клиентите, и който използват за осъществяване на разговорите. Този сървър може да изгражда както частни XMPP мрежи (например зад защитна стена), така и да е част от общата публична XMPP мрежа. Ключовите характеристики на XMPP са разпределения модел на системата за предаване на съобщения (т.е. без единствен централен сървър); и използването на XML-базирани потоци.
Основните спецификации на протокола Jabber, които днес се управляват от Jabber Software Foundation, бяха утвърдени от IETF като стандарт с име XMPP и стандартизирани през RFC 3920. Когато става дума за стандартен протокол за моментни съобщения и съобщения за състояние XMPP често се посочва като конкурентен стандарт на SIMPLE, който е основан на протокола SIP. Но дизайнът на XMPP все пак цели осигуряването на по-общи и независими от приложенията инструменти.
През 2007 г., Jabber Software Foundation (JSF) сега е XMPP Standards Foundation (XSF)[3].
Връзка с други протоколи
Уникална характеристика на XMPP системите са транспортерите, известни също и като шлюзове (gateways), които позволяват на потребителите да осъществяват комуникация с IM мрежи, основани на други протоколи – AIM и ICQ (през протокола OSCAR), MSN Messenger и Windows Messenger (през услугата .NET Messenger Service), SMS, E-mail или IRC. За разлика от многопротоколните клиенти като Trillian или Pidgin, XMPP осигурява този достъп на сървърно ниво, през нарочни услуги-шлюзове на отдалечената сървърна машина.
Всеки XMPP потребител може се „запише“ за някоя от тези услуги, предоставяйки нужните данни за влизане в чуждата мрежа (най-често име или номер и парола) и може да общува с потребители на тези мрежи все едно са XMPP потребители. Това означава, че всеки клиент, в който има пълна поддръжка на протокола XMPP, може да се използва за достъп до която и да е мрежа, за която има транспортер, без нужда от допълнителен програмен код в самия клиент.
XMPP клиенти
„Чисти“ XMPP клиенти
(по азбучен ред)
- Akeni Jabber Client (междуплатформен, собственически) http://www.akeni.com (безплатен за некомерсиална употреба)
- Cabber (междуплатформен, GPL) http://cabber.sourceforge.net/ (конзолен, остарял)
- Chatopus (PalmOS, собственически) http://www.chatopus.com/
- Exodus (Windows, GPL)
- Gabber (Linux/Unix, Gnome, GPL)
- Gajim (междуплатформен, GPL) http://www.gajim.org/
- Gossip (Linux/Unix, Gnome, GPL) http://www.imendio.com/projects/gossip/
- Gush (Linux/Mac OS X/Windows, Creative Commons) http://2entwine.com/
- Imcom (междуплатформен, GPL) http://nafai.dyndns.org (конзолен, остарял)
- Iruka (междуплатформен, GPL) http://www.nongnu.org/iruka/ (остарял)
- JabberFoX (Mac OS X, BSD лиценз) http://jabberfox.sourceforge.net
- Я.Онлайн (междуплатформен, GPL) http://nano.yandex.ru/project/online/
- Jabberzilla (междуплатформен, MPL/GPL/LGPL) http://jabberzilla.jabberstudio.org/
- Jabber Messenger (Windows, собственически) http://www.jabber.com
- Jabber WindowGram Client ((Mac OS X, Linux/Unix, GPL) http://jwgc.blathersource.org/
- JAJC (Windows, собственически, но безплатен за употреба)
- JBother (Java, GPL) http://jbother.org/
- Jeti (Java, GPL) http://jeti.jabberstudio.org/
- Jeti/2 (Java, eComStaton OS/2, GPL) http://www.ehlertronic.de/software/e-software/jeti2-jabber.html
- Neos (Windows, собственически) http://www.neosmt.com/
- Nitro (Mac OS X, GPL) http://nitro.jabberstudio.org/
- Pandion (Windows, собственически) http://www.pandion.be/
- Psi (междуплатформен, GPL) http://www.psi-im.org
- sjabber (междуплатформен, GPL) http://www.pipetree.com/jabber/sjabber/ (конзолен, остарял)
- Spark (междуплатформен, GPL) http://www.igniterealtime.org/ (конзолен)
- The Coccinella (Windows, Mac OS X, Linux/Unix, GPL) http://hem.fyristorg.com/matben/
- Tkabber (междуплатформен, GPL) http://tkabber.jabber.ru/
- Whisper IM (Java, Creative Commons) https://whisperim.dev.java.net/
Многопротоколни клиенти с поддръжка на XMPP
(по азбучен ред)
- Adium (Mac OS X, GPL)
- Bitlbee през IRC (междуплатформен, свободен) http://www.bitlbee.org
- Centericq (междуплатформен, GPL)
- Fire (Mac OS X, GPL)
- Pidgin (Linux/Unix/Windows, GPL)
- Proteus (Mac OS X, собственически)
- qutIM (Linux/Unix/BSD/Windows/Mac OS X, GPL) http://www.qutim.org
- Kopete (Linux/Unix, GPL) http://kopete.kde.org
- Miranda IM (Windows, GPL)
- SIM (Linux/Windows, GPL) http://sim-icq.sourceforge.net
- Trillian Pro (Windows, собственически) през приставка
- iChat (Mac OS X v10.4 само за Tiger, собственически)
XMPP сървъри
(по азбучен ред)
- Antepo OPN (междуплатформен, комерсиален) http://www.antepo.com/?products.opnserver
- chime (междуплатформен, GPL) http://www.codecobra.com/chime/
- ejabberd (междуплатформен, GPL) http://ejabberd.jabber.ru/
- Jabber XCP (Linux, Solaris, Microsoft Windows, комерсиален) http://www.jabber.com/
- jabberd (междуплатформен, GPL) http://jabberd.jabberstudio.org
- jabberd2 (междуплатформен, GPL) http://jabberd.jabberstudio.org/2/
- Openfire (междуплатформен, GPL) http://www.igniterealtime.org/
- Merak IM (Microsoft Windows, комерсиален) http://www.icewarp.com/products/instant_messaging/
- Tigase (междуплатформен, GPL) https://tigase.dev.java.net/
Местни XMPP общности
На някои места в света са се заформили общности, чиято цел е подобряването и разпространението на XMPP до крайния потребител. Смята се, че тъй като XMPP е свободен протокол, той е по-правилният начин да се разговаря през мрежата. Всички други протоколи или са много остарели (IRC), или са собственически и не са стандарти на IETF (AIM, ICQ, MSN Messenger, Yahoo Messenger), и съответно не е гарантирано нито бъдещото им развитие, нито включването на нужни на потребителите характеристики. In a few places around the world, communities have evolved where the main focus is advocating XMPP and bringing XMPP closer to the end user. Usually services are offered, such as a XMPP server, a web portal to assist users with signing up to XMPP and forums.
Някои примери за местни XMPP общности:
- Jabber Australia – http://www.jabber.org.au/
- Jabber Africa – http://www.jabberafrica.org/
- JabberES (Испания) – http://www.jabberes.org/
- JabberPL (Полша) – http://www.jabberpl.org/
Примерен обмен между клиент и сървър
Клиентът (пижо) се свързва в XMPP сървъра (jabber.minus273.org, на TCP порт 5222), изпраща съобщение (Относно: „проба-проба“ и Съдържание: „проба едно-две-три“) до друг клиент (пенда) и излиза.
пижо:
<?xml version="1.0"?> <stream:stream xmlns:stream=„http://etherx.jabber.org/streams“ xmlns="jabber:client" to="jabber.minus273.org">
jabber.minus273.org:
<stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' from='jabber.minus273.org' id='1461777714'>
пижо:
<iq type="set" id="auth_2" to="jabber.minus273.org" > <query xmlns="jabber:iq:auth"> <username>pizo</username> <password>mypassword</password> <resource>В офиса</resource> </query> </iq>
jabber.minus273.org:
<iq from="jabber.minus273.org" id='auth_2' type='result'/>
пижо:
<message to="penda@example.com" > <subject>проба-проба</subject> <body>проба едно-две-три</body> </message> <presence type="unavailable" > <status>Logged out</status> </presence> </stream:stream>
jabber.minus273.org:
</stream:stream>
Вижте още
Източници
Външни препратки
- XMPP Standards Foundation
- Български публичен XMPP сървър – jabber.minus273.org
- Български публичен XMPP сървър – jabber.bglinux.org
- Български публичен XMPP сървър – animerulezzz.org
- Jabber.org
- Jabber User Guide – Въведение в използването на XMPP за нови потребители.