Pull to refresh

Без паники! Про то, что сделал Google с XMPP

Reading time 12 min
Views 86K
После выхода Google Hangout, в интернете стало популярно мнение, что Google закрывает XMPP. На самом деле это не так. Однако такое впечатление могло сложиться даже из предыдущей статьи, которая в себе содержала адское ничего — минимум подробностей, одну ссылку (нерелевантную — видимо, с Опеннета) на форум Маэмо (который к Гуглу, естесственно, не имеет никакого отношения) и потому собрала аж 254 комментария разной степени правдивости.

Чтобы разобраться, что на самом деле произошло, нужно было прошерстить немало разных обсуждений в различных источниках, что требовало времени. Я живу с пониманием, что Google мутит что-то с XMPP уже несколько месяцев и по крайней мере пару из них с пониманием, что Google теряет интерес к XMPP, поэтому собрал и структурировал всю информацию в одном месте.



Что в Google сделали с XMPP? Ничего.


Под катом полное собрание происшествий и фактов вокруг Google Hangout, GTalk XMPP, s2s, пользовательские и экспертные оценки ситуации.

Хронология


Давайте рассмотрим всё происходящее с GTalk начиная с первого этапа, когда появились первые сообщения о том, что Google закрыл S2S. S2S (Server-to-Server) или межсерверное взаимодействие, позволяет пользователям одного джаббер-сервера посылать сообщения пользователям другого джаббер-сервера. Это важнейшее условие православности сервера, наряду с поддержкой конференций, доступности регистрации, ну и конечно аптаймом.

Проблемы s2s стали достоянием гласности в апреле. В ЖЖ-сообществе жаббероводов образовалось обсуждение, где люди повально заявляли о закрытии s2s гуглом, и даже на Хабре тогда появилась статья про грядущий Google Babel — habrahabr.ru/post/176347. В ярушном клубе Jabber на эту тему писали чуть более сдержано.

image

Обратимся к истокам. На самом деле, всё началось ещё в феврале, когда сотрудники Google заметили спам-активность с некоторых серверов и предупредили сообщество о том, что ограничат количество запросов на добавление в список контактов от (всех) других серверов, если запросы продолжат поступать:

Hi
I work with Google's chat service, and we are seeing lots of spammy invites from users on various federated domains, including jabberes.org, jabber.se, jabber-hosting.com and jabber.org. Have you noted an elevated amount of sccount creation etc., and is there anything you can do about it in that case, otherwise we will have to institute very tight limits of invites per day being sent from federated domains.
Per Gustafsson


Вы уже знаете, что именно это и произошло в итоге. Google включил блокировку запросов подписки. Как истинный джентльмен, Google также пригласил заинтересованных владельцев серверов добавиться в белый список. Крупные сервера приглашение преимущественно проигнорировали. Владельцы нескольких мелких были добавлены в белый список.

Два месяца запросы на добавление в список контактов были доступны только от пользователей GTalk, а запросить подписку у пользователя GTalk было нельзя. В апреле Google прикрутил спам-фильтры и снял блокировку.

Довольно длительная блокировка вызвала некоторое количество неудобств и даже мифов.
Но если о блокировке запросов писали многие, например, Opennet — www.opennet.ru/opennews/art.shtml?num=36409 — то об отмене блокировки и восстановлении полноценного s2s написал только первоисточник, фонд СПО — www.fsf.org/blogs/sysadmin/google-reinstates-federated-instant-messaging.



Итого


Почему решили, что Google закрыл s2s?
Потому что в анонсе упоминались и были затронуты federated domains.
Закрывал ли Google s2s?
Нет, не закрывал.
Выводы?
Читать первоисточники полезно.
И вот теперь давайте перейдём к рассмотрению ситуации с Hangouts.

Google отказывается от XMPP?

Google отказывается от XMPP?

Google отказывается от XMPP?


ЧТО НА САМОМ ДЕЛЕ ПРОИЗОШЛО?


GOOGLE НЕ ВЫКЛЮЧАЛ XMPP. Google выпустил новый КЛИЕНТ для мгновенного общения. Новый мессенджер.
Однопротокольный. Протокол закрыт.
Функциональность мессенджера: отправка сообщений, аудио-, видеозвонки.

Что мы имеем официально?


Первоисточником информации про отказ от XMPP в Google Hangouts является Нихайл Сингхал (Nikhyl Singhal), глава коммуникационных сервисов Google, который в эксклюзивном в интервью TheVerge заявил следующее:

Talk, for example, was built to help enterprise users communicate better, Singhal says. «The notion of creating something that’s social and that’s always available wasn’t the same charter as we set out with when we created Talk.» With Hangouts, Singhal says Google had to make the difficult decision to drop the very «open» XMPP standard that it helped pioneer.


Со слов Никхайла получается, что Google Talk был создан, чтобы помочь общаться корпоративным пользователям, а при разработке Hangouts в Google хотели создать нечто социальное и всегда доступное. Это расходилось с идеологией Talk и в Google приняли трудное решение отказаться от того самого открытого стандарта XMPP, который он помогали разрабатывать.

К такому заявлению сходу возникает очень много вопросов. Участие Google в XMPP было совсем не столь впечатляющим, как это пытается представить в своём заявлении Сингхал. Правда, это уже не прямая цитата Сингхала, а изложение журналиста TheVerge, так что нельзя исключить и ошибку в формулировке. Но не похоже. Что было по факту? GTalk был запущен в августе 2005 года. В декабре того же года была опубликована библиотека libjingle — открытая реализация стандарта XEP-0166: Jingle. С тех пор они практически не занимались ни GTalk, ни стандартами XMPP. Из имеющего отношения к стандартам, в 2006 был торжественно запущен S2S — и всё. Поправьте меня, если можете, но другой работы со стандартами протокола XMPP в Google не вели.
У Гугла были интересные инициативы в виде веб-чата в Gmail, транспорта в AOL (который заодно позволял работать и с ICQ до тех пор, пока ICQ не продали в DST, ныне известную как Mail.ru Group). Но это уже не касалось и не помогало протоколу, стандарту XMPP.

Другое возможное объяснение отказа от XMPP — те самые пресловутые spammy invites. Однако попыток решить проблему через создание/модификацию стандартов и прочая-прочая со стороны Google тоже замечено не было. Более того, предыдущие 10 лет с такой проблемой в промышленных масштабах никто не сталкивался. И на стороне Гугла тоже не замечал. То есть примерно вот такой метод решения проблемы работал на ура:

image

Я утрирую, конечно, но тем не менее. Спамеры довольно успешно отсекаются на уровне сервера различными мониторингами, на уровне пользователя — ботами, капчей и прочая. В особо серьёзных случаях можно временно заблокировать s2s с сервером спамера или закрыть регистрацию.

Таким образом, упоминание минусов XMPP от сотрудников Google выглядит скорее как попытка оправдать в глазах общественности переход на Hangouts. Но попытка слабая. Разумеется, дистрибуция по всем Android-девайсам — фактор гораздо более значимый и это все понимают.

Благодаря bobuk, у нас есть письмо Гугла о том, что боты на AppEngine теперь не всегда будут работать корректно — они не смогут отправлять сообщения пользователям Hangout. Но касается это не только ботов AppEngine, а всех пользователей XMPP.

Hello from Google!
You are the administrator for one or more Google App Engine applications that may be impacted by an upcoming new product release. Google will be releasing a new communications product called Hangouts which users may choose to use instead of Google Talk. The new service does not support XMPP.
As a result XMPP bots such as the App Engine XMPP service will not be able to communicate with users who adopt the new service. There are two ways to keep your App Engine XMPP service working for end users:
1) Your users may use any chat client that supports XMPP. XMPP clients will continue to work as usual with the App Engine XMPP service.
2) End users will be asked to opt-into the new service when it goes live. Note that the go-live date may vary for Google Apps domains. End users and google app domain administrators may choose not to opt into the new system. If they do not opt in they will remain on the current Talk client and there will be no change to their existing functionality, including being able to exchange messages with App Engine XMPP bots. Users who already opted in may toggle back to the old XMPP based chat clients in Gmail.
Note that the changes discussed above have no impact on non-Google XMPP clients, which will continue to work as usual with the App Engine XMPP service. If you have any questions, comments, or concerns, please don't hesitate to email us at app-engine-xmpp-questions@googlegroups.com.
Sincerely, The Google App Engine Team


В переводе на русский, это означает:

2) Конечным пользователям будет предложено перейти на новый сервис [Hangouts], когда он будет запущен. Обратите внимание, что дата запуска Hangouts для доменов Google Apps может отличаться. Конечные пользователи и администраторы доменов Google Apps смогут отказаться от перехода на новую систему. Если они откажутся от перехода на Hangouts, то для них продолжит работать Google Talk и не будет никаких изменений в текущей функциональности, включая возможность обмениваться сообщениями с XMPP-ботами App Engine.

Обратите внимание, что все вышеописанные изменения, не оказывают никакого влияния на сторонние XMPP клиенты, которые будут продолжать работать с XMPP-сервисом App Engine в обычном режиме.

То же самое верно не только для App Engine, а для любого XMPP-сервера и не только для ботов, но и для обычных аккаунтов Google Talk.
Для сторонних XMPP-клиентов никаких изменений в работе GTalk не произошло и не произойдёт в ближайшем будущем. Официальная позиция по поводу сторонних клиентов тоже довольно ясна и не изменялась — используйте любой Jabber-клиент. Google просто перестала делать джаббер-клиент.
2. Which other clients can connect to the Google Talk service?
Any client that supports Jabber/XMPP can connect to the Google Talk service. Here's a list of popular clients.


Вопросы и ответы. Почему у меня все работает?


Можно как-то сохранить GTalk?
Говорят, что можно поставить Hangouts из apk, тогда Talk не снесётся. У меня Hangouts из этого apk всё равно заменил Talk. Удаление Hangouts через Google Play позволяет откатиться снова на предустановленный в Андроиде GTalk. В новых версиях Андроида скорее всего не будет GTalk и поставить его будет сложнее.
Придется валить с gmail.com (GTalk) на другой Jabber-сервер?
Нет, не придётся. Просто проследите, что ни вы, ни ваши друзья больше не используют клиенты Google. Для надёжности можно использовать одинаковый клиент — тогда всё точно будет работать.
Если вам нужен веб-клиент, используйте опенсурсный Jappix.
А если всё-таки валить, то куда?
yandex.ru, qip.ru, jabber.ru/xmpp.ru
на свой домен — pdd.yandex.ru, hosted.im,
на свой сервер — ejabberd, prosody, openfire
Nota bene: С Яндексом всё тоже не так радужно. Последние дни у Яндекса, а как следствие и у хостящегося рядом Jabber.ru, тоже возникают проблемы в работе. Но не будите в себе параноика, такое бывало и раньше. Должно наладиться.
Тем не менее, Яндексу джаббер не интересен. Вопрос только в том, когда надоест и когда решат закрыть. Безусловно, это не совсем скоро будет. Но не исключено, что всё-таки будет.

Как приверженцам Jabber общаться с пользователями Google Hangouts?
Только через клиент Hangouts.
Если вам напишут из Hangouts в аккаунт GTalk, включённый через джаббер-клиент, то вы получите сообщение, но ваш собеседник не получит ответ. Поэтому если вам долго не отвечают на сообщение, отправленное из джаббер, придётся либо запустить Hangouts и проверить, доставилось ли вообще сообщение.
Неудобно?
Неудобно. Старайтесь использовать либо только Hangouts, либо только GTalk через джаббер-клиенты.
И что дальше? От SMTP и POP3 отказаться не думают?
Евгений Ваганыч, уж не вы ли это? Google поменял клиент и пошёл изобретать велосипед. Ну ок. XMPP продолжает жить и развиваться. XMPP в Гугле продолжает работать. К чему эти наезды?
Я любил мобильный GTalk. Чем пользоваться дальше?
Под Андроидом, пожалуй, попробуйте IM+. По простоте интерфейса он больше всего похож на оригинальный GTalk.
В качестве альтернатив рассмотрите Jasmine IM и недавно обновившийся QIP, в зависимости от требований к функциональности и дизайну соответственно.
А ещё, кстати, Xabber тоже вариант.
Под iOS — Talkonaut, IM+, Imo.im
Talk был у меня основным IM уже много лет, что теперь, Скайп начинать использовать??
Skype или Viber, если вам принципиально звонить. Если не принципиально, то используйте любой нормальный jabber-клиент.
Третьесторонние jabber-клиенты пока работают, но таким макаром их наверняка запретят скоро
Надеюсь, после этой статьи стало понятно, что это домыслы.
Как вообще можно запретить джаббер-клиенту подключаться к джаббер-серверу? Зачем бы это Гуглу тратить на это ресурсы, если XMPP у него не основное решение?
Вопрос может стоять только в том, закроют ли целиком джаббер-сервер. Вы можете домысливать, что закроют, а я — что не закроют.
Только официальный анонс разрешит этот спор. Давайте подождём. Думаю, придётся ждать ещё годик как минимум. Так что пока — пользуемся.

Гугл «молодец»


Кроме всех неудобств, которые очевидно вытекают из действий Гугла, есть и другая сторона вопроса. Ведь Google Talk был наикривейшим XMPP-сервисом! S2S у GTalk действительно зачастую отваливался с различными серверами. Иногда были проблемы с подключениями. А все хоть сколько нибудь крупные игроки в голос утверждают, что GTalk — это недоXMPP.

С самого своего появления…
  • Сервер не отправляет и не принимает сообщения, если нет авторизации (подписки). Это сделано на случай появления спама. Т.е. без взаимной авторизации Вы не сможете отправлять и принимать сообщения, и будете друг у друга всегда «Не в сети».
  • Поддерживается только двухсторонняя авторизация (односторонняя авторизация эквивалентна отсутствию авторизации).
  • При подключении транспортов к аккаунту на Google возможны неполадки. Например, транспорт «теряется» при новом логине или не подключается автоматически.
  • Не поддерживается хранение закладок на сервере.
  • Не поддерживаются джаббер-конференции.
  • Не поддерживаются приватные списки (список видящих, невидящих и игнорируемых).
  • Нет поиска пользователей по каким-либо данным.
  • Сервер не позволяет изменять информацию о себе средствами клиента.
  • Сервер не позволяет менять пароль от учётной записи средствами клиента.
  • При удалении контакта из контакт-листа, он удаляется и из адресной книги Google. Так же при удалении контакта из адресной книги, он удаляется из контакт-листа.
  • Сервер, при подключении, добавляет к ресурсу случайную последовательность букв и цифр, потому что официальный клиент не поддерживает ресурсов.


Антон Угнич (ugnich), основатель сервиса джаббер-микроблогов Juick.com:
Про смерть Google Talk:

Хорошо, [если скоро] не надо [будет] это жалкое подобие XMPP поддерживать, одной головной болью меньше. juick.com/ugnich/2360253


Филипп Кулин(schors), DiPhost:
Гугль на самом деле в чём-то молодец. Я тут порасстраивался и перестал. Ну не вытянул он бесплатного сервиса, так ушёл и не мешает коммерческим сервисам. Тот же XMPP непонятно вообще чем живёт. За больше 10 лет существования его так толком никто и не поддерживает. Стандарты есть, а реализаций толковых так и не возникло. Вон, Juick — то так ему не то, то сё. Значит это возможность для нас, братья и сёстры, сделать свой стандарт, студентам сотворить под него клиентов и серверов, бизнесу — продать это. Может наш новый стандарт будет во сто крат лучше мёртворождённого потокового XML.


Это предложение, конечно, стоит воспринимать с долей юмора, однако посыл в целом верен: при том, что XMPP очень богатый и открытый протокол в теории, она должна быть подкреплена практикой. Реализация клиентов и серверов должна измениться или же протокол в целом в перспективе может быть заменён на что-то более динамично развивающееся. Ведь всегда найдётся такой парень:

image

Мне очень импонирует позиция разработчиков Xabber'а, которая выкристаллизовалась за последние три месяца:

Новости GoogleReader напомнили нам о смерти #GoogleWave. Мы не уверены, что XMPP в Gtalk выживет. 14 марта.
Мы полагаем, однажды #GTalk перестанет быть совместимым с #XMPP. Это будет день, когда мы перестанем использовать его. «Don't be evil», не так ли? 16 апреля.
Мы лучше запустим #kickstart по созданию #xmpp клиента, реализующего все штучки из Hangouts на основе XEP'ов 22 мая


Проблема в том, что над развитием самого XMPP тоже надо сильно поработать, чтоб оно стало удобно и универсально. Это довольно сложно и никто из разработчиков end-user клиентов этим не занимается. А те, кто занимаются — далеки от массового пользователя. У XMPP сейчас нет вектора развития. Так, делают что-то потихоньку себе в стандартах и не внедряется ничего, что мы могли бы использовать в жизни. Принимаются интересные стандарты, однако их реализации не распространяются в популярных джаббер-клиентах и потому новые функции не могут быть использованы для общения с произвольным собеседником. Возникает сегментация по клиентам.

XMPP vs Hangouts


Hangouts не поддерживает XMPP федерацию. Вообще. Принципиально. И не собирается.
Ему же хуже. И потом, кто знает, что у Hangouts внутри? Возможно, в какой-то момент Google перейдёт вновь на какой-то стандартный протокол:) Never say never.

Следует различать мессенджер Hangouts, мессенджер GTalk и джаббер-сервис Google Talk. C2S в Hangouts поддерживается, S2S — нет.
С джаббер-серверами GTalk ничего не случилось.
Но джаббер-клиенты GTalk были заменены на клиент для нового протокола и в этом смысле Google действительно отказывается от XMPP. Не технически, а идеологически. Google лишает XMPP-сообщество своей поддержки и начинает движение в сторону Skype-подобной модели. В том числе делая упор на звук и видео.

Межсерверное общение Hangouts и XMPP


Hangouts —> Gtalk
Gtalk —> Hangouts

youserver.org <—> Gtalk
Gtalk <—> Gtalk

youserver.org X Hangouts
Hangouts X youserver.org

ПослеГугловая эра


1. Неприятно, что теперь не всякая почта джаббер.
Раньше любая крупная почта в Рунете, за исключением Mail.ru, была джаббером: GMail, Яндекс, QIP (Pochta.ru и т.д) образовывали большую тройку джаббер-игроков.
2. Перестал работать один из самых убедительных аргументов в пользу XMPP — «вы уже используете джаббер». Хотя всё ещё работает «у вас уже есть джаббер».
3. Maybe «don't be evil» has been changed to «don't be open»
Peter Saint-Andre

Это началось не вчера и не сегодня.

Нам неприятно.

Не помрём.

Давайте без паники.



Что почитать


На вопрос, что же нам стоит ожидать, но применительно не к протоколу XMPP, а к прочим сервисам Google пытается ответить статья Nojitter — Безмолвные анонсы Google I/O.
Посмотреть в оригинале доклад о Hangouts на Google I/O — www.youtube.com/watch?v=9pmPa_KxsAM&feature=youtu.be&t=1h42m34s

Данная же статья опирается в том числе и на множество частных мнений, по которым вы можете наблюдать степень актуальности вопроса. Многие источники указаны в статье, прочие — вот:
www.theverge.com/2013/5/15/4318830/inside-hangouts-googles-big-fix-for-its-messaging-mess
techcrunch.com/2013/05/16/googles-new-hangouts-chat-and-messaging-app-to-incorporate-sms-soon
http://productforums.google.com/forum/#!topic/chat/Yvaa70u-AOI
juick.com/tag/jabber — пользовательские истории
juick.com/tag/google
plus.google.com/u/0/105319907965825397218/posts/a3DTDC59wn4
plus.google.com/u/0/116630836705915947538/posts/Lr1beAgc14o
readwrite.com/2013/05/16/google-io-2013-google-hangouts-google-plus-changes-messaging
Tags:
Hubs:
+154
Comments 52
Comments Comments 52

Articles