вторник, 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

8 коммент. :

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

Гут. :)

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

Все должно быть стандартизировано, иначе можно будет наблюдать ситуацию, подобную доскам рисования. Для веб-истории уже есть расширение, которое кстати (ЕМНИП) уже реализовано в ejabberd. Так зачем городить костыли? Если все пихать в Private XML Storage, то там банально не останется места.

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

Охтыж!!! Всё, оказывается, уже изобретено!!!
http://xmpp.org/extensions/xep-0136.html#manual
Ну что ж, будем ждать реализации архивирования отдельных сообщений в
соответствии со стандартами, и забивать private storage записочками из
Мирандового блокнота :-)

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

попробуем реализовать :)

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

XEP-0136?

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

Ога :)

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

Нет. Мы используем чисто наш протокол, и наш сервер (хотя этот протокол очень похож на xmpp). Хранение истории на сервере протокола не поддерживается, и если и будет реализовано, то не скоро

Тем более сами сервера это поддержвают не очень хорошо

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

Значит вы таким образом навязываете пользователю пепяку. Такой подход, разумеется, можно понять, но это ни разу не позитивно. Кстати, пепяка может делать то, про что я писал - не записывать всё подряд, а сохранить одно какое-нибудь важное сообщение?

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

 
 
Copyright © Johan's blog
Blogger Theme by BloggerThemes Design by Diovo.com