Extensible Messaging and Presence Protocol (XMPP) (с предишно име Jabber) е отворен стандартен протокол за незабавни съобщения и сигнализация за присъствие, вдъхновен от XML. XMPP позволява разпределена, федеративна комуникация — всеки с име на домейн и интернет връзка може да поддържа собствен сървър и да комуникира с други сървъри в мрежата.

Протоколът се откроява със своята отвореност и разширяемост: голяма част от сървърния и клиентския софтуер е с отворен код, което улеснява внедряването, прегледа на кода и интеграцията в различни системи.

Как работи XMPP

  • XML съобщения (stanzas) — обменът на данни става чрез XML-основни "стензи" (stanzas), които съдържат съобщения, присъствие и запитвания (IQ).
  • Присъствие (presence) — потребителите могат да публикуват статуса си (онлайн, офлайн, зает и т.н.), което позволява да се вижда кой е достъпен за чат.
  • Ро́стер (списък с контакти) — XMPP поддържа списъци с контакти и абонаменти за присъствие.
  • Федерация — различни XMPP сървъри могат да комуникират помежду си по подобие на електронната поща, осигурявайки децентрализирана мрежа.
  • Разширяемост — функциите се добавят чрез XMPP Extension Protocols (XEPs), които стандартизират допълнителни възможности (напр. мулти-потребителски чат, трансфер на файлове, глас/видео и др.).

Разширения и стандарти

XMPP се поддържа чрез набор от допълнителни спецификации (XEPs), които позволяват добавяне на функции като:

  • мулти-потребителски чат (MUC, XEP-0045);
  • обмен на файлове и големи съобщения;
  • универсална адресна книга (vCard) и синхронизация на контакти;
  • Jingle (XEP-0166) за реализиране на глас и видео връзки;
  • пълна разширяемост за интеграция с други услуги и шлюзове.

Сигурност и поверителност

XMPP поддържа стандартни механизми за сигурност като TLS (шифрован транспорт) и SASL (идентификация). За защита от наблюдение и осигуряване на край-до-край шифроване се използват допълнителни протоколи и разширения като OMEMO и OpenPGP или OTR в по-стари реализации. Администраторите на сървъри и клиентите трябва да конфигурират TLS и да използват актуални XEP-и за по-добра защита на съобщенията.

Приложения, сървъри и внедряване

Протоколът е внедрен на хиляди сървъри в интернет. В миналото се оценяваше, че стотици милиони потребители използват софтуер, базиран на XMPP; популярността и разпространението варират във времето в зависимост от доставчиците и интеграциите. Някои търговски и облачни услуги също са използвали XMPP — например Google Talk и Gizmo5.

Има множество сървърни реализации (като ejabberd, Prosody, Openfire и други) и разнообразие от клиенти за различни платформи. Клиентите включват Pidgin, iChat и много мобилни приложения, които поддържат стандартни и разширени XMPP функции.

Типични случаи на употреба

  • незабавни съобщения и групови чатове;
  • корпоративна комуникация и интеграция със системи за уведомяване;
  • глас и видео (через Jingle/която се осъществява чрез XMPP сигнализация);
  • интернет на нещата (IoT) и машино-към-машин комуникация при нужда от разширяем, текстово-базиран протокол;
  • шлюзове към други мрежи и услуги.

Как да започнете

  • Изберете клиент (настолен или мобилен) или използвайте уеб-базирано приложение.
  • Регистрирайте акаунт на публичен XMPP сървър или създайте/инсталирайте собствен сървър, ако имате домейн и нужда от пълен контрол.
  • Конфигурирайте TLS и актуализирайте сървъра/клиента, за да използвате съвременни XEP-и за сигурност и функционалност.
  • Запознайте се с разширенията (XEP), които ви трябват — напр. за групов чат, трансфер на файлове или край-до-край шифроване.

XMPP остава популярен избор за разработчици и организации, които търсят отворен, разширяем и федеративен протокол за реално-времеви комуникации. Благодарение на стандартизирания си XML-подход и богат набор от XEP-и, той може да обслужва много различни потребности — от прост чат до сложни интеграции и мултимедийни услуги.