Для офисного пакета LibreOffice подготовлен [3] экспериментальный прототип функции совместного редактирования документов, позволяющей в режиме реального времени напрямую организовать работу над одним документом группы людей без задействования специализированных серверов.
Новая подсистема основана [4] на использовании коммуникационного фреймворка Telepathy [5], позволяющего организовать мгновенный обмен сообщениями с использованием различных протоколов. Для создания системы совместного редактирования использована особенность Telepathy, позволяющая организовать канал обмена сообщениями между приложениями, поверх стандартных IM-протоколов, предоставляя таким образом подобие сервиса межпроцессного взаимодействия (IPC) для территориально разнесённых приложений. Использование Telepathy позволило избавиться от необходимости разработки специальных серверов для координации совместной работы и задействовать традиционные технологии обмена сообщений для организации взаимодействия приложений.
Совместное редактирование может быть инициировано с любым пользователем из списка контактов локальной системы мгновенного обмена сообщениями. После установки прямого соединения между пользователями, все изменения документа синхронно отображаются у всех участников. Например, при изменении значения в электронной таблице на одной машине, все изменения сразу становятся видимыми на другой машине. При этом сохраняется порядок внесения изменений и обновляются все связанные с изменением формулы и диаграммы, как будто эти изменения внесены локально. Для борьбы с возможными конфликтами и обеспечения единого порядка внесения изменений, инициатор соединения берёт на себя роль первичного клиента (master).
Ссылки:
[1] http://htfl.ru/cat-news-libreoffice
[2] http://htfl.ru/cat-news-novosti
[3] /out.php?link=http://people.gnome.org/%7Emichael/blog/2012-03-26-collaboration.html
[4] /out.php?link=https://wiki.documentfoundation.org/Development/Gsoc/Ideas#Telepathy_for_collaboration
[5] /out.php?link=http://telepathy.freedesktop.org/
[6] /out.php?link=http://cgit.freedesktop.org/libreoffice/core/log/?h=feature/tubes2