XMPP

Материал из Википедии — свободной энциклопедии

Перейти к: навигация, поиск
Официальный логотип XMPP Standards Foundation

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

Содержание

[править] История

Джереми Миллер начал проект Jabber в 1998 году. Его первый главный официальный релиз был в мае 2000 года. Основным продуктом проекта был jabberd, сервер Jabber.

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

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

[править] Преимущества протокола

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

[править] Слабые стороны протокола

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

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

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

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

[править] Примечания

[править] См. также

[править] Ссылки

Источник — «http://ru.wikipedia.org/wiki/XMPP»