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]
Протокол
Семейство протоколов XMPP принято как стандарт RFC.[5] Стандартный порт для XMPP — 5222.[6] Также возможно использовать порт 80 и/или 443[7], если возникают проблемы с файрволом.
Преимущества
- Децентрализация: Архитектура сети XMPP схожа с электронной почтой; кто угодно может запустить свой собственный 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 могут также использоваться без явного указания имени пользователя (с указанием имени ресурса или без такового) для системных сообщений и для контроля специальных возможностей на сервере.
Соединение с другими протоколами
Полезной особенностью XMPP систем являются транспорты, или шлюзы, позволяющие пользователям получать доступ к сетям, использующим другие протоколы. Это могут быть другие протоколы мгновенного обмена сообщениями или такие протоколы, как SMS и электронная почта.
В отличие от мультипротокольных клиентов, XMPP предоставляет доступ на уровне сервера, посредством коммуникации через специальные сервисы-шлюзы, выполняющиеся на удалённом компьютере.
Любой пользователь может «зарегистрироваться» на одном из этих шлюзов, предоставив информацию, необходимую для входа в сеть, и может общаться с пользователями сети так, как если бы они были пользователями сети джаббер. Это значит, что любой клиент, полностью поддерживающий XMPP может быть использован для доступа к любой сети, для которой существуют шлюзы, без какого-либо дополнительного кода в клиенте и без необходимости клиенту иметь прямой доступ в Интернет.
Реализация шлюзов зависит от конкретного XMPP-сервера и подвержена нестабильности из-за закрытости коммерческих IM-сервисов.
Программное обеспечение
Отделение раздела Возможно, необходимо отделить раздел в новую статью, и там раскрыть эту тему подробнее.
|
XMPP-серверы
(приведены в алфавитном порядке)
- DJabberd (англ.) — высокоскоростной расширяемый каркас для создания XMPP-серверов, разработанный компанией Danga Interactive. Применяется для общения пользователей ЖЖ.
- ejabberd — свободный распределённый и отказоустойчивый XMPP-сервер, написанный на Erlang. Работает на крупнейшем российском XMPP-сервере jabber.ru.
- jabberd14 (англ.)
- CommuniGate Pro
- iChat Server (англ.)
- Openfire (ранее Wildfire, ещё ранее Jive Messenger) — свободный многофункциональный и отказоустойчивый XMPP-сервер, написанный на Java. Занимал первое место в рейтинге по возможностям на jabber.org (по состоянию рейтинга на конец марта 2007 года)[16]
- Prosody (англ.)
- Tigase (англ.)
XMPP-клиенты
(приведены в алфавитном порядке)
- Bombus — свободная программа для обмена сообщениями по протоколу XMPP, предназначенная для мобильных телефонов и смартфонов с поддержкой Java/MIDP.
- Coccinella — свободная программа для обмена сообщениями по протоколу XMPP, написана на Tcl/Tk.
- Exodus — свободный (GPL) XMPP клиент для ОС Microsoft Windows.
- Gajim — свободная программа для обмена сообщениями по протоколу XMPP, основанная на Python и PyGTK.
- Google Talk — XMPP-совместимая программа Google, поддерживающая функции голосового общения.
- Jimm aspro (Jabber)[17] — свободная программа для обмена сообщениями по протоколу XMPP, предназначенная для мобильных телефонов и смартфонов с поддержкой Java/MIDP, основанная на Jimm apsro
- Pandion — XMPP-клиент для Microsoft Windows. Для работы использует Internet Explorer. Имеется возможность создавать расширения с использованием HTML и JScript.
- Psi — свободная программа для обмена сообщениями по протоколу XMPP, основанная на библиотеке Qt.
- SieJC — свободная программа для обмена сообщениями по протоколу XMPP, для телефонов Siemens с установленным эльфпаком.
- Talkonaut — программа для обмена сообщениями по протоколу XMPP, Google Talk и Gizmo5, с возможностью использования IP-телефонии (VoIP), для мобильных телефонов с поддержкой Java и КПК с Windows Mobile.
- Tkabber — свободная программа для обмена сообщениями по протоколу XMPP, написана на Tcl/Tk.
- Я.Онлайн — основан на исходных кодах Psi. Умеет уведомлять о новых письмах на почтовых ящиках, поддерживающих POP3.
Многофункциональные клиенты, поддерживающие протокол 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.
- Gizmo5 — несвободная бесплатная программа для мгновенного обмена сообщениями в Интернете, поддерживающая протоколы 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 и др.
- 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 и другие.
- Virtus — мультипротокольная программа от Rambler.
Библиотеки
Примечания
- ↑ 1,0 1,1 Jabber Inc. — About Us
- ↑ History of XMPP
- ↑ Jabber Software Foundation Renamed to XMPP Standards Foundation
- ↑ Gary Burd. XMPP Federation (17 января 2006). Проверено 30 ноября 2007.
- ↑ XMPP RFCs
- ↑ Can I use Jabber when I’m behind a firewall? JabberLive!, 9 марта 2007
- ↑ http://www.jabber80.com
- ↑ Psi
- ↑ Kopete OTR plugin
- ↑ Miranda GnuPG Plugin
- ↑ Standards-JIG] Distribution of stanza types
- ↑ Standards-JIG] proto-JEP: Smart Presence Distribution
- ↑ XEP-0138: Stream Compression
- ↑ Transport Layer Security Protocol Compression Methods
- ↑ Standards-JIG] MUC traffic issues
- ↑ XMPP Software: Servers. XMPP Standards Foundation. Проверено 12 февраля 2009.
- ↑ Загрузка готовых сборок приложения Jimm aspro (Jabber)
Ссылки
Файл:Commons-logo.svg | XMPP на Викискладе? |
---|
- XMPP Standards Foundation(англ.)
- Jabber.org(англ.)
- Национальный российский jabber-сервер
- Обзор Jabber-клиентов под Windows
- Обзор Jabber-клиентов под Symbian
- Обзор Jabber-клиентов на J2ME
- Вики-система по теме миграции на Jabber
Ошибка: неверное или отсутствующее изображение |
Для улучшения этой статьи желательно?:
|
Схемы URI |
|
---|---|
Официальные | aaa: • aaas: • acap: • cap: • cid: • crid: • data: • dav: • dict: • dns: • fax: • file: • ftp: • go: • gopher: • h323: • http: • https: • im: • imap: • ldap: • mailto: • mid: • news: • nfs: • nntp: • pop: • pres: • rtsp: • sip: • sips: • snmp: • tel: • telnet: • urn: • wais: • xmpp: |
Неофициальные | about: • aim: • bolo: • btc: • bzr: • callto: • chrome: • cvs: • daap: • ed2k: • ed2kftp: • feed: • fish: • git: • gizmoproject: • iax2: • irc: • ircs: • lastfm: • ldaps: • magnet: • mms: • msnim: • psyc: • rsync: • secondlife: • skype: • ssh: • svn: • sftp: • smb: • sms: • soldat: • steam: • unreal: • ut2004: • view-source: • vzochat: • webcal: • xfire: • ymsgr: |
ast:Extensible Messaging and Presence Protocol be-x-old:Extensible Messaging and Presence Protocol bg:Extensible Messaging and Presence Protocol ca:Extensible Messaging and Presence Protocol cs:Extensible Messaging and Presence Protocol da:Extensible Messaging and Presence Protocol de:Extensible Messaging and Presence Protocol el:Extensible Messaging and Presence Protocol en:Extensible Messaging and Presence Protocol eo:Extensible Messaging and Presence Protocol es:Extensible Messaging and Presence Protocol et:Extensible Messaging and Presence Protocol eu:Extensible Messaging and Presence Protocol fi:Extensible Messaging and Presence Protocol fr:Extensible Messaging and Presence Protocol it:Extensible Messaging and Presence Protocol ja:Extensible Messaging and Presence Protocol lt:Extensible Messaging and Presence Protocol nl:Extensible Messaging and Presence Protocol no:Extensible Messaging and Presence Protocol pl:Extensible Messaging and Presence Protocol pt:Extensible Messaging and Presence Protocol simple:Extensible Messaging and Presence Protocol sk:Extensible Messaging and Presence Protocol sl:Extensible Messaging and Presence Protocol sr:Extensible Messaging and Presence Protocol sv:XMPP th:Extensible Messaging and Presence Protocol tl:Extensible Messaging and Presence Protocol tr:Extensible Messaging and Presence Protocol uk:Extensible Messaging and Presence Protocol vi:Extensible Messaging and Presence Protocol wa:Extensible Messaging and Presence Protocol zh:XMPP cs:Jabber de:Jabber es:Jabber fr:Jabber ja:Jabber pl:Jabber zh:Jabber
Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....