18 июля 2007 г.

Почему XMPP? Часть 3. Децентрализация - вот в чем соль.

Продолжаю перевод цикла статей. Приятного прочтения.

Почему XMPP? Часть 3. Децентрализация - вот в чем соль.

Если вы следите за моими постами, повествующими, почему же XMPP/Jabber лучше, чем все остальные проприетарные протоколы, вы, скорее всего, уже начали понимать, почему же Jabber - король мгновенных сообщений. Нижеприведенная статья расскажет, почему же корона принадлежит Jabber.

Для начала, я хочу, чтобы вы задумались на минуту: когда вы отправляете электронную почту вашему другу, разве вы можете посылать ее только на почтовый ящик того же провайдера, что и ваш? Иными словами, разве, пользуясь Gmail, вы можете посылать сообщения только другим пользователям Gmail? Конечно нет! Это же глупо. Вы можете посылать e-mail другим людям независимо от того, каким почтовым провайдером они пользуются, будь это Yahoo!, Hotmail или сервер какой-то фирмы, а они могут отвечать и пересылать письма вам. Тогда у меня есть вопрос: почему провайдеры IM-систем заставляют вас общаться только со своими пользователями? Почему пользователи MSN могут отправлять сообщения только пользователям MSN? Почему пользователи Yahoo! могут отправлять сообщения только пользователям Yahoo!? AIM? ICQ? Видите? Проблема в том, что только пользователи MSN могут подключаться к "официальным" серверам MSN. То же самое и с остальными. Коммерческие IM-провайдеры попросту "запирают" пользователей в своих сетях.

Нечестно, не правда ли? У меня есть родственники, у которых есть только MSN-аккаунты, таким образом, они могут общаться только с другими пользователями MSN. Это неудобно, потому что я не собираюсь использовать проприетарные IM-протоколы, таким образом, я не могу общаться с ними, если у них нету аккаунтов Jabber (хотя, у некоторых есть). Однако я могу спокойно отправлять им электронную почту. Система e-mail абсолютно децентрализована, а IM-системы - нет. Jabber решает эту проблему. А значит, мои родственники могут использовать Jabber-аккаунты Gmail, в то время как у меня есть свой домашний сервер и я могу общаться с ними без проблем. По правде говоря, если бы вы могли увидеть мой ростер, вы бы заметили, что большинство моих контактов используют Gmail, хотя есть среди них и пользователи LiveJournal, и пользователи jabber.org, и несколько пользователей собственных домашних серверов. Разве это не прекрасно? Независимо от провайдера Jabber, я могу общаться со всеми.

Волшебство децентрализации заключается в службе, которая называется 'server-to-server'. Когда я регистрирую аккаунт, например на jabber.org, я могу добавлять в свой контакт-лист кого угодно, независимо от провайдера. Во время аутентификации мой провайдер (jabber.org) соединяется с провайдером другого пользователя (использующего например gmail.com) и запрашивает информацию о пользователе. Его IM-провайдер уведомляет его об аутентификации, и, если пользователь соглашается, его провайдер соединяется с моим и сообщает ему, что "все OK", и пользователь добавляется в мой ростер. Задумайтесь. Один сервер общается с другим сервером, даже вне домена. Способен ли MSN на такое? Yahoo!? AIM? ICQ? Естественно, нет.

Децентрализованная работа серверов Jabber


Я знаю, что подумают об этом те, кто пользуется проприетарными IM-протоколами. Даже при том, что Jabber децентрализован, вы можете получать сообщения только от пользователей Jabber, то есть Jabber, по сути, тоже "закрыт". Вы не можете отправлять сообщения пользователям MSN или ICQ - только другим пользователям Jabber. Да, это так, но это не вина Jabber, скорее наоборот. MSN и ICQ противостоят соединению Jabber с их серверами. Подумайте над этим: у вас есть аккаунт Gmail, и вы отправляете письмо пользователю Hotmail. Возникает окошко, которое говорит вам о том, что вы не являетесь пользователем Hotmail, поэтому вы не можете отправлять почту другим пользователям Hotmail. Представьте себе, как это кощунственно. Система e-mail децентрализована, но Hotmail хочет "запереть" своих пользователей. Примерно такая же игра ведется среди IM. Jabber решил проблему "запирания" пользователей, открыв спецификации и сделав IM децентрализованным, однако другие провайдеры отказались поступить подобным образом. Поэтому, в настоящее время, вы можете отправлять сообщения только другим пользователям Jabber, но мне кажется, с учетом растущей популярности Jabber, что долго такая ситуация не продлится.

Когда я услышал о том, что Jabber децентрализован, я был поражен и заинтересован. Мне казалось, что это откроет путь к развитию IM, и если другие провайдеры не присоединятся, они разделят судьбу Титаника. Оказалось, что не казалось. С момента появления Jabber, если верить Википедии, он стал вторым по популярности после AOL (прим. пер.: однако, в силу децентрализации Jabber, никто никогда не сможет узнать точное количество пользователей Jabber :) ). На сегодняшний день количество пользователей Jabber оценивается почти в 90 миллионов. То есть, каждый третий IM-аккаунт - аккаунт Jabber. Я думаю, что постепенно все больше и больше пользователей будет как я переходить на Jabber, что в конце концов выкопает могилу его проприетарным аналогам. Было бы прекрасно, если бы существовала абсолютно децентрализованная IM-система, такая же, как e-mail, не правда ли? Я надеюсь, что мои статьи об XMPP (Прим. пер.: и мои переводы этих статей ;) ) убедят вас, дорогие читатели, что XMPP/Jabber - лучший среди аналогов, и вы зарегистрируете собственные Jabber-аккаунты у того провайдера, которого выберете сами.

© Aaron Toponce, 'Why XMPP Part 3- Decentralization Is Key', немного вольный перевод: vonderer.

PS. В комментариях к оригиналу этой статьи фигурирует одна очень интересная ссылка на статью о неудачной попытке создания возможности для пользователей MSN и Yahoo! общаться с пользователями AIM, благополучно задавленной AOL'ом. AOL blocks Microsoft Net messaging от 23 июля далекого 1999 года.

5 комментариев:

Cyxapeff комментирует...

Вы не можете отправлять сообщения пользователям MSN или ICQ - только другим пользователям Jabber.

мне кажется стоило бы сделать сноску: "можно, но через транспорты"

vonderer@darkstar комментирует...

Спасибо, сам об этом думал, но цикл статей еще не закончен, и я думаю, автор не забудет осветить и тему транспортов.

Анонимный комментирует...

А можно с Jabbera делать "Голосовые звонки другим пользователям Google Talk"?

vonderer@darkstar комментирует...

Нет. GTalk использует свою собственную технологию. Для звонков необходимо наличие не только аккаунтов на GMail, но и использование официального клиента GTalk, который по своему функционалу, признаться, довольно убог.

ilya-compman комментирует...

У меня возникают проблемы со взамодействием LJ<->Gmail :(
не могли бы Вы помочь?

Gtalk: chekalskiy@gmail.com

Отправить комментарий