Каждому по лампочке или ликбез на тему jabber’a

Jabber (джа́бер; досл. пер. с англ. — болтовня, трёп) — открытый протокол для быстрого обмена сообщениями и информацией о присутствии между любыми двумя абонентами в Интернете. Разработан Джереми Миллером. Первым применением технологии Jabber стало появление асинхронной и расширяемой платформы для обмена мгновенными сообщениями и сети обмена мгновенными сообщениями (англ. IM — Instant Messaging), cходной по возможностям c коммерческими системами IM, такими, как AIM, ICQ, MSN и Yahoo. На базе использования данной технологии было создано множество частных и корпоративных серверов Jabber. Среди них выделяются такие крупные проекты, как системы обмена мгновенными сообщениями компании Google (Google Talk) и Живого журнала.

Протокол

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

В основе протокола XMPP лежит язык XML, имеется поддержка шлюзов в другие IM-сети, однако их реализация зависит от конкретного Jabber-сервера и подвержена нестабильности из-за закрытости коммерческих IM-сервисов.
Семейство протоколов Jabber принято как стандарт RFC.

Jabber имеет ряд преимуществ по сравнению с коммерческими системами IM:

  • Открытость: протокол Jabber открыт, общедоступен и достаточно лёгок для понимания; существует множество реализаций серверов и клиентов, а также библиотек с открытым исходным кодом.
  • Расширяемость: с помощью пространств имён в XML можно расширить протокол Jabber для выполнения требуемых задач и для обеспечения поддержки взаимодействия между различными системами. Общие расширения разрабатываются под контролем Jabber Software Foundation.
  • Децентрализованность: кто угодно может запустить свой собственный сервер Jabber, что позволяет организациям и частным лицам заниматься любыми экспериментами с IM.
  • Безопасность: любой сервер Jabber может быть изолирован от общедоступной сети Jabber, многие из вариантов реализации сервера используют SSL при обмене между клиентом и сервером, и немало клиентов поддерживают шифрование с помощью PGP/GPG внутри протокола.

Jabber удовлетворяет многие потребности частных лиц и организаций. Но важно понимать, что он не является универсальным решением всех задач. В частности, Jabber не является:

  • Универсальным чат-клиентом для различных систем IM — несмотря на множество клиентов Jabber под различные платформы, они не предоставляют таких возможностей по взаимодействию с различными системами IM, которые обеспечиваются программами Miranda IM, Trillian или Pidgin: вместо этого взаимодействие между Jabber и другими системами осуществляют шлюзы, расположенные на стороне сервера.
  • Универсальным решением проблем взаимодействия с различными IM-системами — некоторые сервера Jabber предоставляют возможность взаимодействия с другими системами IM через шлюзы, которые транслируют протокол Jabber в протокол этих систем; однако только от самих систем зависит осуществление взаимодействия (к чему они подчас не стремятся, и даже наоборот).
  • Единообразной IM-системой, созданной одной компанией — Jabber-cообщество не монолитно; напротив, существует большой набор общедоступных и закрытых серверов Jabber, проектов с открытым кодом, компаний по разработке ПО, использующих протокол Jabber.

Адресация

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

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

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

No related posts.