Google Talk: стремление к простоте и совершенству

Война, которую компания ICQ в последние месяцы развязала против альтернативных мессенджеров (использующих протокол Oscar), привела к закономерному итогу – массовой миграции пользователей на IM-клиенты с открытыми протоколами. Это Trillian, Miranda, Jabber и многие другие. Но на их фоне в лидеры быстро прорывается детище компании Google – интернет-пейджер Google Talk. До сих пор "Компьютерная газета" не публиковала подробный обзор этой программы. Что ж, постараемся исправить это упущение. Тем более что пользователей Google Talk в странах СНГ, как показывает статистика, становится больше буквально с каждым днем.

По сути


Google Talk, появившийся на свет в 2005 году, – это бесплатная и простая в использовании служба, с помощью которой можно делать голосовые вызовы и отправлять мгновенные сообщения. Это загружаемое приложение для Windows позволяет просто и удобно общаться в режиме реального времени. Google Talk представляет собой сервис мгновенного обмена сообщениями, в основе которого лежит XMPP – открытый протокол, более известный как Jabber. В России и СНГ среди IM-сервисов пока широко распространен ICQ и другие интернет-пейджеры на основе протокола Oscar (QIP, Mail.ru Агент). Но и количество русскоязычных пользователей Jabber тоже неуклонно растет, особенно в последнее время.

Главное достоинство Google Talk – это то, что он предельно тесно интегрирован с популярной почтовой службой GMail. У них единый аккаунт, то есть для доступа в мессенджер используются те же логин и пароль, что и в почтовой службе Google. В главном окне программы есть ссылка для быстрого доступа к почтовому ящику GMail, а в окне диалога – кнопка для отправки письма, опять же через GMail. Наконец, Google Talk периодически проверяет почтовый ящик и выводит оповещения о новых письмах в правом нижнем углу экрана. Если пригласить в Google Talk пользователя, у которого нет ящика в Gmail, то ему придет приглашение начать пользоваться почтовой службой Google.
Установив Google Talk на своем ПК, пользователь может сразу запустить программу с использованием имени пользователя и пароля Gmail. При первом запуске контакты GМail автоматически добавляются в список знакомых Google Talk. Google Talk выполняет все функции, которые раньше были в программе уведомления GМail, и показывает уведомление о новых сообщениях в учетной записи GМail, а также о входящих вызовах и чатах. Обмен текстовыми сообщениями доступен как из самой программы Google Talk, так и из встроенного в интерфейс GМail чата.

Если вход выполнен с помощью аккаунта GМail, новые знакомые в Google Talk попадают и в адресную книгу GМail, и наоборот. Удаление или блокирование кого-то из списка знакомых Google Talk никак не влияет на список контактов GМail.

Вся история переписки хранится не на пользовательском ПК, а на сервере. С одной стороны это удобно, с другой – нет. Неудобно невозможностью оффлайнового поиска по сообщениям. Удобно тем, что нет зависимости от IM-клиентов или местоположения – по одному аккаунту пользователь может общаться на работе и дома, имея при этом единую историю переписки.

Первоначальное число статусов пользователя – два: доступен и занят, но новые статусы можно добавлять практически бесконечно. Единственный недостаток – отсутствие режима невидимости.

Окно диалога не содержит ни одного лишнего элемента. Диалоги можно сворачивать-разворачивать щелчком по заголовку. Окно для ввода, под общим окном диалога, сначала кажется маленьким, но начинает увеличиваться по ходу написания текста. Если одновременно ведутся несколько диалогов, их окна группируются подобно цепочкам писем в GMail. Поначалу смотрится несколько непривычно, но на практике – довольно удобно.

К данным о себе можно добавить картинку-аватар – свою фотографию или любое другое изображение. Если ничего подходящего нет, можно выбрать картинку в раскрывающемся меню изображений Google Talk. Выбранная картинка появится сразу, и собеседники увидят ее рядом с вашим именем и статусом в своем списке. Если загружаете фотографию, то это должен быть файл в формате JPG, GIF, BMP или PNG. Помните, что Google Talk автоматически изменит размер изображения на 32х32.

Программа отличается чрезвычайно скромными размерами – всего 1,28 Мб инсталлятора и 3,19 Мб на диске. Интерфейс у Google Talk выполнен в по- гугловски минималистичном стиле – легком и воздушном.

Голосовое общение

Как и большинство современных интернет-пейджеров, Google Talk поддерживает голосовую связь. Все, что нужно для вызова с помощью Google Talk, – это адрес собеседника, подключение к Сети, микрофон и динамик. Все вызовы (в пределах планеты Земля) – бесплатные. Если планируется голосовое общение, то хотя бы на одном конце желательно иметь широкополосную связь. На другом конце может находиться даже обычный модем на 56k. По личным субъективным ощущениям, качество передачи голоса в GТalk ничуть не хуже, чем при использовании Skype. А Skype по качеству передачи звука часто превосходит обычные телефоны. Конечно, для оптимального качества звука рекомендуется использовать гарнитуру.

Совместимость с другими мессенджерами

Google Talk пока не поддерживает прямое общение с пользователями службы AIM, MSN Messenger, ICQ и Yahoo! Messenger. Google Talk поддерживает открытые стандарты и использует стандартный протокол XMPP, который поддерживает такие проекты, как Earthlink, Gizmo Project, Tiscali, Netease, Chikka, MediaRing и многие другие.

Однако понятно, что полностью отказываться от ICQ мало кто хочет. Следовательно, возникает вопрос: как можно безболезненно перейти на GTalk, не отказываясь от ICQ? Существуют три способа:

Способ 1. Использование родного клиента.
Если нет желания отказываться от любимого ICQ-клиента, можно просто скачать GTalk-клиента и использовать его отдельно, в паре с ICQ-клиентом. В этом случае есть еще и возможность голосового общения. Кроме того, можно использовать web-клиент.

Способ 2. Мультипротокольные клиенты.
Можно использовать мультипротокольные клиенты. Например, Miranda, SIM, Kopete, Gaim и т.д. В них достаточно просто добавить новую учетную запись. Недостаток этого подхода в том, что история сообщений ICQ не будет сохраняться на сервере GMail.

Способ 3. Использование Jabber-клиента с подключением транспортов.
Google Talk обеспечивает возможность подключения транспортов для любых сторонних протоколов (ICQ, AIM, MSN, Yahoo), также с хранением истории переписки на сервере. Тут уже, правда, придется изрядно помозговать. Постольку GTalk основан на технологии Jabber, можно использовать любой Jabber-клиент – благо, их написано великое множество – Psi, Gajim, Tkabber, JAJC и т.д. Рассмотрим подключение ICQ-транспорта на примере Psi (у остальных клиентов все настраивается примерно так же).

Jabber – распределенная система, то есть существует много серверов, на которых есть транспорты в различные IM-системы, включая ICQ. К своему GTalk-аккаунту можно подключить транспорты практически с любого другого стороннего Jabber-сервера. В случае с транспортами ICQ нужно помнить, что не все транспорты корректно подтягивают никнеймы. В случае если ник не подтягивается, асечный контакт будет виден только как цифры. Чтобы это исправить, надо в файле "UserPsiDataprofilesdefaultconfig.xml" строчку <autoResolveNicksOnAdd>false</autoResolveNicksOnAdd> заменить на <autoResolveNicksOnAdd>true</autoResolveNicksOnAdd>. После этого ники должны подтягиваться нормально.

Чтобы подключить транспорт, выбираем Service Discovery и в строке адреса вводим выбранный нами Jabber-сервер (список публичных серверов – в конце статьи). Появится список доступных сервисов. Если в их числе есть нужный транспорт (например, icq2.swissjabber.ch), регистрируем его. Транспорт запросит логин, пароль и авторизацию; после ее подтверждения должны подтянуться ники ICQ. Все.

По тому же алгоритму можно подключать любые другие транспорты (AIM, MSN, Yahoo). Можно сделать и так, чтобы в одном аккаунте GTalk было объединено несколько IM-систем – при этом вся переписка будет сохраняться на сервере.

При использовании транспортов порой возникают, конечно, проблемы с кириллической кодировкой, так что переписываться "между системами" временами приходится транслитом. Так что рекомендуется использовать транспортные серверы в зоне RU, хотя у них бывают проблемы со стабильностью работы.

Архитектура Google Talk

В 2005 году в Google вполне логично рассудили, что не имеет смысла строить IM-сервис в отрыве от остальных коммуникационных сервисов этой компании. Поэтому еще до публичного запуска Google Talk был интегрирован с почтовым сервисом GMail и социальной сетью Orkut. Так разработчики получили возможность достаточно точно оценить предстоящие нагрузки и готовность сервиса к публичному запуску.

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

Представьте себе некий абстрактный IM-сервис с миллионом пользователей, каждый из которых в среднем за день отправляет сто текстовых сообщений. Но при этом сервис обрабатывает и доставляет вовсе не сто миллионов сообщений, а во много раз больше. Судите сами: аббревиатура XMPP расшифровывается как eXtensible Messaging and Presence Protocol. То есть простой обмен сообщениями – только одна из его функций. Столь же важная часть остается "за кадром" – это отображение присутствия пользователей в онлайне, их действий (типа "пишет сообщение"), изменений статуса, обмен служебной информацией между программами-клиентами и т.п. Все эти сообщения как раз и стоят за "presence" в аббревиатуре XMPP. Суммарный трафик, генерируемый служебными функциями, в разы превышает трафик от собственно самих текстовых сообщений и передачи файлов.

Зависимость суммарного количества presence-сообщений от количества пользователей IM-сервиса далеко не линейна. Их количество за некий период времени можно очень приблизительно посчитать как произведение трех параметров: количества пользователей, средней длины списка контактов и числа изменений статуса каждым пользователем. Каждый новый пользователь в системе увеличивает как минимум два из этих трех параметров. Но благодаря описанным выше принципам (распределение групп пользователей по разным серверам) Google Talk обрабатывает каждое из миллиардов сообщений в день менее чем за 100 миллисекунд, что позволяет справляться с огромной нагрузкой.

Кроме того, разработчики Google Talk постарались как можно больше внимания уделить возможным сбоям и любым проблемным ситуациям. Понятно, что любое (даже запланированное) временное прекращение работы какой-то части системы резко увеличивает нагрузку на остальную часть. Даже если просто производится перезагрузка части системы, то из-за очистившегося кэша серверы снова начнут полноценно функционировать далеко не сразу. Что уж тут говорить о непредвиденных сбоях, последствия которых намного более глобальны… Именно поэтому для быстрого устранения потенциальных проблем – как с общим функционированием системы, так и с ее производительностью, – ведутся логи для всех этапов обработки запросов, а также предусмотрена возможность профайлинга прямо на работающих в системе серверах.

Переходим на Google Talk

За последние годы ICQ обросла массой недостатков: стала громоздкой и нестабильно работающей, а встроенная реклама раздражает пользователя и "съедает" трафик. Протокол ICQ (Oscar) – закрытый и компания AOL (владелец ICQ) имеет дурную привычку этот протокол постоянно менять, из-за чего приходится периодически скачивать последнюю версию мессенджера. При передаче сообщений между различными асечными клиентами нередко возникают глюки (невозможность передачи файлов, проблемы с кириллицей и т.п.).

С другой стороны, Google Talk основан на открытой технологии Jabber, что позволяет использовать как родной клиент, так и любой сторонний jabber- клиент (согласно общей архитектуре протокола). GТalk, в отличие от многих других интернет-пейджеров, обеспечивает пользователю максимальную стабильность. Ведь за ним стоит крупнейшая интернет-корпорация мира – Google.

Еще два ключевых преимущества – тесная синхронизация контактов GTalk с адресной книгой GМail и возможность подключения транспортов для любых сторонних протоколов (ICQ, AIM, MSN, Yahoo).

И последнее, о чем хотелось бы сказать. Вряд ли кто-то из пользователей добросовестно читал пользовательское соглашение ICQ. Между тем, там прямо указано, что, используя ICQ, пользователь соглашается с тем, что все права на материалы, переданные с помощью ICQ, автоматически передаются компании AOL!!! Разработчики Google Talk такого хамства себе не позволяют.

Полезные ссылки

Google Mail: www.gmail.com/
Скачать GTalk Client: www.google.com/talk/intl/ru/
О программе Google Talk: www.google.com/talk/intl/ru/about.html
Настройка Google Talk: www.google.com/talk/intl/ru/start.html
Psi Homepage: psi-im.org/
Настройка Psi для GTalk: www.google.com/support/talk/bin/answer.py?answer=24074
Список публичных серверов Jabber: www.jabber.org/user/publicservers.shtml

Денис Лавникевич


Компьютерная газета. Статья была опубликована в номере 07 за 2009 год в рубрике soft

©1997-2022 Компьютерная газета