Jabber

Jabber

Jabber

Логотип Jabber
Логотип XMPP

XMPP — Extensible Messaging and Presence Protocol (англ. расширяемый протокол обмена сообщениями и информацией о присутствии), ранее известный как Jabber[1] ([ˈʤæbə(r)], джа́ббер(англ. болтовня, трёп; тарабарщина) — это основанный на XML открытый, свободный для использования протокол для мгновенного обмена сообщениями и информацией о присутствии (см. список контактов) в режиме, близкому к режиму реального времени. Изначально спроектированный легко расширяемым, протокол, помимо передачи текстовых сообщений, поддерживает передачу голоса, видео и файлов по сети.

В отличие от коммерческих систем мгновенных сообщений, таких, как AIM, ICQ, MSN и Yahoo, XMPP является децентрализованной, расширяемой и открытой системой. Любой желающий может открыть свой сервер мгновенных сообщений, регистрировать на нём пользователей и взаимодействовать с другими серверами XMPP. На основе протокола XMPP уже открыто множество частных и корпоративных серверов XMPP. Среди них есть достаточно крупные проекты, такие как Google Talk, LiveJournal и Gizmo5.

Содержание

История

Проект Jabber был основан Джереми Миллером в начале 1998 года с разработки сервера jabberd[2]. Первое сообщение о проекте появилось 4 января 1999 года на Slashdot. Вскоре после этого к проекту присоединилось несколько основных разработчиков, которые стали работать над сервером jabberd, клиентами для Windows и GNU/Linux, а также шлюзами в основные системы IM (AIM, ICQ, MSN, и Yahoo). Позже, в 1999, Webb Interactive Services начало спонсировать основных разработчиков, что ускорило процесс создания проекта. В то время появилась основа протокола Jabber, а также сервер jabberd и ранние клиенты, такие, как WinJab (устарел и получил своё развитие в Exodus) и Gabber. Этот ранний период постоянных изменений закончился в мае 2000 с выпуском jabberd 1.0.

Ранний Jabber протокол сформировал основы для стандарта XMPP, опубликованного как RFC 3920. Часто этот момент рассматривается как начало соперничества с SIMPLE, основанным на протоколе SIP, как стандартного протокола для мгновенного обмена сообщениями и информацей о присутствии.

С августа 2001 года протокол Jabber переходит под контроль Jabber Software Foundation (16 января 2007 года, " Jabber Software Foundation " была переименована в " XMPP Standards Foundation "[3]), для более точного описания своей работы развития расширений собственно протокола, в отличие от линии развития программы с одноименным названием.

Jabber, Inc. занимается развитием двух проектов — Jabber Extensible Communications Platform (Jabber XCP) и JabberNow. Первый является фреймворком, а второй — программно-аппаратное решение (специально собранный и настроенный компьютер). Сайт jabber.org все ещё функционирует. Инвесторами проекта Jabber являются Jona, Inc., France Telecom, Intel Capital, и Webb Interactive Services, Inc.[1].

В августе 2005, Google представил сервис Google Talk — комбинацию VoIP и клиента для обмена сообщениями, использующий XMPP для функций переписки, и также как основу для передачи голоса и файлов. Первоначальный запуск сервиса от Google не включал межсерверного общения, но к 17 января 2006 года такая возможность была добавлена[4].

Об истории развития проекта можно прочесть[2].

Протокол

Схема устройства работы XMPP

Семейство протоколов XMPP принято как стандарт RFC[5] Стандартный порт для XMPP — 5222[6]. Также возможно использовать порт 80 и/или 443[7], если возникают проблемы с фаерволлом.

Преимущества

  • Децентрализация: Архитектура сети XMPP схожа с email; кто угодно может запустить свой собственный XMPP сервер и нет какого-либо центрального сервера.
  • Открытый стандарт: Internet Engineering Task Force формализовал XMPP как стандарт обмена мгновенными сообщениями и технологии присутствия под названием XMPP, и спецификации XMPP были опубликованы как RFC 3920 и RFC 3921. Никаких привилегий не требуется для добавления поддержки этих спецификаций и их разработка не привязана к какому-либо разработчику. Существует множество реализаций серверов и клиентов, а также библиотек с открытым исходным кодом.
  • История: Технологии XMPP используются с 1998 года. При поддержке таких крупных компаний как Sun Microsystems и Google создано множество дополнений к стандартам XMPP для клиентов, серверов, компонент и библиотек кодов.
  • Безопасность: XMPP серверы могут быть изолированы от публичных сетей XMPP (например во внутренней сети компании), и хорошо защищены (благодаря использованию SASL и TLS) встроенными в ядро XMPP спецификациями. Для поддержки использования шифрования канала, XMPP Standards Foundation также использовал вспомогательный certification authority в xmpp.net обеспечивая цифровые сертификаты для администраторов XMPP серверов при содействии StartCom Certification Authority (который является основным хранителем сертификатов для всех вспомогательных). Многие реализации серверов используют SSL при обмене между клиентом и сервером, и немало клиентов поддерживают шифрование с помощью PGP/GPG внутри протокола[8][9][10].
  • Гибкость: Настраиваемая функциональность может быть надстроена поверх XMPP; для поддержки возможности взаимодействия различных сетей, стандартные расширения поддерживаются XMPP Software Foundation. Приложения XMPP в дополнение к функциональности клиента сетевого общения включают в себя администрирование сети, распределение ресурсов, утилиты для совместной работы, обмен файлами, игры и мониторинг удалённых систем.

Слабые стороны

  • Избыточность передаваемой информации: Как правило более 70 % межсерверного трафика XMPP составляют сообщения о присутствии [11], около 60 % которых являются излишними[12]. XMPP на данный момент создает избыточный трафик при доставке сообщений о присутствии (то есть «статус-сообщений») нескольким пользователям. Для решения этой проблемы разрабатываются новые протоколы. Также решением является расширение XEP-0138[13] — компрессия передаваемых данных протокола алгоритмами lzw и zlib, а также использование компрессии в рамках шифрования соединения TLS RFC-3749 глава 3[14].
  • Масштабируемость: XMPP сейчас страдает от фактически той же проблемы избыточности, но применительно к чат-комнатам и возможностям публикации информации[15]. Решение этих проблем также ожидается в виде XEP-расширений. Пока они не введены, большие чат-комнаты интенсивно образуют избыточный трафик.
  • Неэффективность передачи бинарных данных: Так как XMPP является, по сути, одним длинным XML документом, невозможно передать немодифицированную двоичную информацию. В результате этого, для передачи файлов стараются использовать дополнительные протоколы, например HTTP. Для передачи же файлов и другой бинарной информации непосредственно в XMPP потоке используется base64-кодирование.

Адресация

Каждый пользователь в сети Jabber имеет уникальный идентификатор — Jabber ID (сокращенно JID). Адрес JID, подобно адресу электронной почты, содержит имя пользователя и доменное имя сервера, на котором зарегистрирован пользователь, разделённые знаком @. Например, пользователь user, зарегистрированный на сервере example.com, будет иметь адрес: user@example.com.

Пользователь может иметь одновременно несколько подключений, для различения которых используется дополнительное значение JID, называемое ресурсом и добавляемое через слэш в конец адреса. К примеру, пусть полный адрес пользователя будет user@example.com/work, тогда сообщения, посланные на адрес user@example.com, дойдут на указанный адрес вне зависимости от имени ресурса, но сообщения для user@example.com/work дойдут на указанный адрес только при соответствующем подключенном ресурсе.

Адреса JID могут также использоваться без явного указания имени пользователя (с указанием имени ресурса или без такового) для системных сообщений и для контроля специальных возможностей на сервере.

Соединение с другими протоколами

Элис посылает сообщение через сеть джаббер к ICQ-транспорту. Дальше сообщение передаётся Бобу через сеть ICQ.

Полезной особенностью XMPP систем являются транспорты, или шлюзы, позволяющие пользователям получать доступ к сетям, использующим другие протоколы. Это могут быть другие протоколы обмена мгновенными сообщениями или такие протоколы как SMS и E-mail.

В отличие от мультипротокольных клиентов, XMPP предоставляет доступ на уровне сервера, посредством коммуникации через специальные сервисы-шлюзы, выполняющиеся на удалённом компьютере.

Любой пользователь может «зарегистрироваться» на одном из этих шлюзов, предоставив информацию, необходимую для входа в сеть, и может общаться с пользователями сети так, как если бы они были пользователями сети джаббер. Это значит, что любой клиент, полностью поддерживающий XMPP может быть использован для доступа к любой сети, для которой существуют шлюзы, без какого-либо дополнительного кода в клиенте и без необходимости клиенту иметь прямой доступ в Интернет.

Реализация шлюзов зависит от конкретного XMPP-сервера и подвержена нестабильности из-за закрытости коммерческих IM-сервисов.

Программное обеспечение

XMPP-серверы

(приведены в алфавитном порядке)

  • DJabberd[16] — высокоскоростной расширяемый каркас для создания XMPP-серверов, разработанный компанией Danga Interactive. Применяется для общения пользователей ЖЖ.
  • ejabberd — свободный распределённый и отказоустойчивый XMPP-сервер, написанный на Erlang. Работает на крупнейшем российском XMPP-сервере jabber.ru.
  • jabberd
  • jabberd2
  • Citadel
  • CommuniGate Pro
  • IceWarp
  • iChat Server
  • in.jabberd
  • Isode M-Link
  • Jabber XCP
  • Jerry Messenger
  • Openfire (ранее Wildfire, ещё ранее Jive Messenger) — свободный многофункциональный и отказоустойчивый XMPP-сервер, написанный на Java. Занимал первое место в рейтинге по возможностям на jabber.org (по состоянию рейтинга на конец марта 2007 года)[17]
  • OpenIM
  • Prosody
  • psyced
  • Sun Jave System Instant Messaging
  • Tigase

XMPP-клиенты

(приведены в алфавитном порядке)

  • Bombus — свободная программа для обмена сообщениями по протоколу XMPP, предназначенная для мобильных телефонов и смартфонов с поддержкой Java/MIDP.
  • Coccinella — свободная программа для обмена сообщениями по протоколу XMPP, написана на Tcl/Tk.
  • Exodus — свободный (GPL) XMPP клиент для ОС Microsoft Windows.
  • Gajim — свободная программа для обмена сообщениями по протоколу XMPP, основанная на Python и PyGTK.
  • glu (xeus)[18] — XMPP-клиент, написанный с использованием WPF.
  • Google Talk — XMPP-совместимая программа Google, поддерживающая функции голосового общения.
  • JabberDS — Homebrew-клиент XMPP для портативной игровой консоли Nintendo DS
  • jabber.el — расширение для Emacs.
  • Jimm aspro (Jabber)[19] — свободная программа для обмена сообщениями по протоколу XMPP, предназначенная для мобильных телефонов и смартфонов с поддержкой Java/MIDP, основанная на Jimm apsro
  • Pandion — XMPP-клиент для Microsoft Windows. Для работы использует Internet Explorer. Имеется возможность создавать расширения с использованием HTML и JScript.
  • Psi — свободная программа для обмена сообщениями по протоколу XMPP, основанная на библиотеке Qt.
  • SieJC — свободная программа для обмена сообщениями по протоколу XMPP, для телефонов Siemens с установленным эльфпаком.
  • Spark — свободная программа для обмена сообщениями по протоколу XMPP, основанная на Java.
  • Talkonaut — программа для обмена сообщениями по протоколу XMPP, Google Talk и Gizmo5, с возможностью использования IP-телефонии (VoIP), для мобильных телефонов с поддержкой Java и КПК с Windows Mobile.
  • Tkabber — свободная программа для обмена сообщениями по протоколу XMPP, написана на Tcl/Tk.
  • Mcabber — консольный XMPP-клиент.
  • Я.Онлайн — основан на исходных кодах Psi. Умеет уведомлять о новых письмах на почтовых ящиках, поддерживающих POP3.
  • «ITFRU Messenger» - программа для мгновенного обмена сообщениями в сети Интернет по протоколу Jabber. Работает под управлением Microsoft Windows. ITFRU Messenger интегрирован с MSN, IRC, ICQ, GaduGadu, Yahoo, GTalk И AIM.

Многофункциональные клиенты, поддерживающие протокол XMPP

(приведены в алфавитном порядке)

  • Adium — клиент для ОС Mac OS X для обмена мгновенными сообщениями сервисов XMPP, Google Talk, LiveJournal, Bonjour, Gadu-Gadu, ICQ, Lotus Sametime, .Mac, MeBeam, MySpaceIM, Novell GroupWise, Tencent QQ, SIP / SIMPLE, Tlen, Xfire, .NET Messenger Service, Yahoo! Messenger, Zephyr.
  • Bayanicq — БаянICQ Мультипротокольный клиент для смартфонов под управлением Symbian 9, UIQ3.
  • Citron IM — Мультипротокольный клиент для Windows (для платформы .NET 2.0). Поддерживает XMPP (Google Talk, LiveJournal и др.), a также ICQ и AIM.
  • Gizmo — несвободная бесплатная программа для мгновенного обмена сообщениями в Интернете, поддерживающая протоколы AIM, Windows Live (MSN), Yahoo!, MySpace IM, GoogleTalk, ICQ, iChat, QQ, Gadu-Gadu и XMPP.
  • iChat — программа, поставляемая вместе с операционной системой Mac OS X.
  • Instantbird — свободная программа для мгновенного обмена сообщениями в Интернете, поддерживающая протоколы XMPP, Google Talk, ICQ, Yahoo!, AIM, MSN, Gadu-Gadu и другие, базирующаяся на Pidgin и Mozilla Firefox.
  • Kopete — свободная программа для мгновенного обмена сообщениями в Интернете, работающая в KDE. Работает с протоколами XMPP, ICQ, AIM, Yahoo, MSN, IRC, Gadu-Gadu, Novell GroupWise Messenger и др.
  • MDC — поддерживает XMPP, ICQ, M-агент. Графический интерфейс построен на библиотеке Qt. В данный момент находится на стадии бета-тестирования.
  • Miranda IM — свободная программа для мгновенного обмена сообщениями в Интернете или в локальной сети, понимающая протоколы ICQ, IRC, AIM, MSN, XMPP, Google Talk, Yahoo, Skype, Gadu-Gadu, Tlen, Netsend, В Контакте и т. д.
  • Pidgin — свободный кроссплатформенный клиент для мгновенного обмена сообщениями в Интернете, понимающий протоколы ICQ, IRC, AIM, MSN, XMPP, Yahoo, Gadu-Gadu и т. д.
  • QIP Infium — поддерживает XMPP, начиная с версии Infium Beta, вышедшей 22.06.2007 (основан на исходниках модуля XMPP из Miranda IM).
  • QIP PDA — поддерживает XMPP, начиная с версии 2000, вышедшей 30.04.2009.
  • qutIM — кроссплатформенный клиент мгновенного обмена сообщениями с открытым исходным кодом (поддержка XMPP включена с версии 0.1.99).
  • SIM — свободная программа для мгновенного обмена сообщениями в Интернете, понимающая протоколы ICQ, AIM, MSN, XMPP, Yahoo и др.
  • Trillian — программа для мгновенного обмена сообщениями в Интернете, понимающая протоколы ICQ, MSN, XMPP, Yahoo и другие.
  • Climm — свободная, кроссплатформенная, текстовая, использующая интерфейс командной строки (CLI) программа обмена мгновенными сообщениями поддерживающая OSCAR и XMPP протоколы (ICQ и Jabber соответственно). climm может быть запущен на GNU/Linux, FreeBSD, NetBSD, OpenBSD, AIX, HP-UX, Solaris, Microsoft Windows (с помощью Cygwin или MinGW), AmigaOS и (с ограничениями) BeOS.
  • Virtus — мультипротокольная программа от Rambler

Библиотеки

Основная статья: Библиотеки XMPP

Примечания

Ссылки



Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Полезное


Смотреть что такое "Jabber" в других словарях:

  • Jabber ID — Jabber Logo officiel de la messagerie instantanée Jabber Jabber (ˈja bər), également connu sous le nom de XMPP, est un ensemble de protocoles standards ouverts de l IETF de messagerie instantanée et de présence, et plus généralement une… …   Wikipédia en Français

  • Jabber — Saltar a navegación, búsqueda Logotipo antiguo de la Jabber Software Foundation (ahora: XMPP Standards Foundation) Jabber es un protocolo libre para mensajería instantánea, basado en el estándar XML y gestionado por XMPP Standards Foundation. La… …   Wikipedia Español

  • Jabber — ist: die frühere und heute noch weitläufig verbreitete Bezeichnung des Extensible Messaging and Presence Protocols (XMPP), welches primär für Instant Messaging verwendet wird Ein Instant Messaging Programm, siehe Jabber Instant Messenger eine… …   Deutsch Wikipedia

  • Jabber — es un protocolo libre gestionado por Jabber Software Foundation basado en el estándar XML para mensajería instantánea. La red de Jabber está formada por miles de grandes y pequeños servidores en todo el mundo, interconectados por Internet.… …   Enciclopedia Universal

  • Jabber — Jab ber, v. t. To utter rapidly or indistinctly; to gabble; as, to jabber French. Addison. [1913 Webster] …   The Collaborative International Dictionary of English

  • Jabber — Jab ber, v. i. [imp. & p. p. {Jabbered}; p. pr. & vb. n. {Jabbering}.] [Cf. {Gibber}, {Gabble}.] To talk rapidly, indistinctly, or unintelligibly; to utter gibberish or nonsense; to chatter. Swift. [1913 Webster] …   The Collaborative International Dictionary of English

  • Jabber — Jab ber, n. Rapid or incoherent talk, with indistinct utterance; gibberish. Swift. [1913 Webster] …   The Collaborative International Dictionary of English

  • jabber — index jargon (unintelligible language), prattle Burton s Legal Thesaurus. William C. Burton. 2006 …   Law dictionary

  • jabber — (v.) 1650s, spelling variant of M.E. jablen (c.1400), also javeren, jaberen, probably ultimately echoic. Related: Jabbered; jabbering. The noun is 1727, from the verb …   Etymology dictionary

  • jabber — chatter, *chat, gab, patter, prate, prattle, babble, gabble, gibber …   New Dictionary of Synonyms


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»