Выбрать главу
Не для протокола

Появлению протокола Jabber (англ. «болтовня», «бормотание») мы обязаны отсутствию совместимости между сетями ICQ и AIM, а также Джереми Миллеру (Jeremie Miller), решившему исправить этот существенный недостаток в 1998 году. Исходно Jabber задумывался как промежуточный протокол, основанный на XML, через который можно было бы «перенаправлять» сообщения из одной IM-сети в другую. Впрочем, быстро стало ясно, что подобное решение можно использовать и для непосредственной связи между пользователями. И не только между пользователями: между любыми объектами в Сети (например, двумя серверами или клиентом и сервером), которым требуется двусторонняя связь в реальном времени, контроль присутствия и другие функции IM.

Ядро разработанных и разрабатываемых в рамках проекта Jabber протоколов было принято в качестве интернет-стандартов RFC в 2004 году под именем XMPP (Extensible Messaging and Presence Protocol). Это семейство протоколов описывает базовый уровень взаимодействия (передача XML-потока, способы идентификации участников обмена), собственно обмен сообщениями и информацией о присутствии (presence), авторизацию и шифрование сообщений и т. д. При общении по XMPP сервер и клиент как бы последовательно пишут по кусочкам единый XML-файл.

В отличие от большинства закрытых IM-протоколов, рассчитанных на взаимодействие клиента только с одним центральным сервером, Jabber/XMPP является децентрализованным: он позволяет связываться двум пользователям, подключенным к разным серверам. В этом смысле Jabber-сеть аналогична e-mail, и для идентификации в ней приняты очень похожие адреса (так называемые JID, Jabber IDentificator), включающие имя пользователя и название сервера (например, v_pupkin@jabber.ru). Запустить собственный Jabber-сервер может кто угодно — достаточно иметь компьютер со статическим IP-адресом или постоянным доменным именем. При этом можно как разрешить взаимодействие с другими Jabber-серверами (federating), так и запретить его, создав собственную частную IM-сеть — последнее свойство особенно ценно в корпоративной среде, где Jabber часто и используется. В этом случае внутренняя IM-сеть компании уже не зависит ни от каких внешних факторов и не пересылает никаких данных за пределы корпоративной сети.

Благодаря открытой и хорошо документированной архитектуре, было разработано множество клиентских и серверных программ для поддержки Jabber. Помимо собственно передачи сообщений от одного пользователя к другому, многие серверы поддерживают так называемые транспорты — шлюзы между Jabber и другими сетями. Например, через такой шлюз пользователь Jabber-клиента может обмениваться сообщениями со своими друзьями в ICQ или AIM. Есть и более интересные применения: отправка писем или SMS-сообщений, общение в IRC-чатах, чтение RSS-лент и даже доступ к хранилищу файлов через Jabber. (Дабы определить, какие транспорты поддерживает тот или иной сервер, в большинстве Jabber-клиентов можно задействовать функцию Service Discovery [рис. 3, клиент Psi].)

Jabber также является расширяемым. Скажем, кроссплатформная программа Coccinella поддерживает совместное рисование на общей «доске» (whiteboard), очень удобное при обсуждении схем, изображений и даже пригодное для игр (рис. 2), — причем никакой специальной поддержки от сервера не требуется, и для использования этой функции достаточно, чтобы ваши корреспонденты использовали тот же клиент. Аналогично можно добавлять другие возможности. Во многом Jabber подтверждает свой статус универсального протокола для двустороннего обмена информацией.

Впрочем, несмотря на все свои преимущества, долгое время он оставался «игрушкой для гиков» и использовался в основном в корпоративном секторе и open source-сообществе, не приемлющем закрытых стандартов и протоколов. Победить «большую тройку» IM-сетей (AIM/ICQ, MSN, YIM) с их огромной пользовательской базой и поддержкой гигантов интернет-рынка в открытом бою «Федерация независимых серверов Jabber» во главе с Jabber.org была не в силах.

Корпоративный Jabber

В Яндексе для «мгновенного» общения внутри компании используется Jabber. Он был выбран по ряду причин. Во-первых, была нужна IM-система, сервер которой можно поставить в организации — глупо пропускать корпоративную переписку, содержащую секретные сведения, через неподконтрольные компании серверы.

Во-вторых, хотелось, чтобы для работы с этой системой можно было использовать привычные для многих сотрудников «мультипротокольные» интернет-пейджеры, такие как Trillian, GAIM, Miranda или SIM. В-третьих, хорошо бы, чтобы это был открытый протокол.