вторник, Март 24, 2009

Частичное хранение истории в XMPP-based мессенджерах

В большинстве современных IM-систем, основанных на XMPP, есть функция сохранения истории сообщений на сервере. Это умеют делать и GTalk, и Я Онлайн, а также QIP и MDC (правда, я не знаю, используется ли в нём для этого XMPP). Мнения пользователей по этому поводу довольно полярны: для кого-то это киллер-фича, для кого-то — серьезное нарушение прайваси. Однако, даже если взглянуть на ситуацию с некоей «серединной» позиции, функциональность такой системы далека от удобства. Посудите сами:

  • Сохранение истории привязано к конкретному серверу.
  • Выключение записи работает «глобально» (и только у Гугла можно выключить запись на время конфиденциального разговора, а потом включить обратно).
  • Доступ к истории осуществляется через веб-интерфейс.

С другой стороны, если задуматья над тем, для чего действительно была бы полезна история на сервере, то получится, что в 90% случаев это поиск какой-то важной информации (ссылки, адреса, телефоны), которая была прислана вам в ходе беседы. То есть, нет в общем-то никакой необходимости записывать и хранить всю историю, а вот потребность в сохранении уже полученного сообщения как раз есть (что невозможно в ситуации, когда запись по умолчанию отключена). Какое решение этой проблемы можно предложить?

На каждом джаббер-сервере имеется так называемое Private XML Storage — пользовательское хранилище произвольных данных размером примерно 30 КиБ. Там, к примеру, хранятся закладки на часто посещаемые конференции. А в последних сборках 0.8-й ветки Miranda IM появилась самопальная (не нарушающая стандартов, но и не прописанная в них) возможность оставлять там пользовательские заметки, состоящие из заголовка, текста и тега. Заметки сохраняются на сервере и поэтому доступны из любого места (однако, только при использовании Miranda IM, другие клиенты эту фичу (пока?) не поддерживают).

Так вот, к чему я клоню: почему бы разработчикам мессенджеров не договориться и не прописать в черновике стандарта XEP, описывающий возможность сохранять в Private XML Storage полученные сообщения? Реализовать это можно в виде кнопочки «Сохранить» у полученных сообщений, или в виде команды контекстного меню у выделенного текста. Если вам прислали важный адрес или телефон, вы просто выделяете его, сохраняете и получаете доступ к нему в любом месте в любое время, независимо от сервера, которым вы пользуетесь, и сохраняя достаточный уровень прайваси.

UPD: ВНЕЗАПНО! нашелся XEP-0136, описывающий архивацию отдельных сообщений. Тема снята.

Creative Commons License