Представлен серверный вариант LibreOffice, работающий через web-браузер
Для трансляции интерфейса клиенту применяется штатный HTML5-бэкенд библиотеки GTK+, предназначенный для отрисовки вывода GTK-приложений в окне web-браузера. Формирование интерфейса с использованием штатного движка LibreOffice позволяет добиться полностью идентичного отображения структуры документа с версией для настольных систем. Пользовательский ввод перехватывается через DOM-события и затем транслируется на сервер через WebSocket API, позволяющий организовать двунаправленный обмен данными с сервером.
Интерфейс LibreOffice в браузере формируется через компоновку передаваемых с сервера готовых битмапов в формате PNG. Как правило в процессе редактирования непосредственно изменения составляют лишь незначительную часть от общего отображения, а подавляющее большинство действий связаны с просмотром уже существующих частей документа, которые можно держать в кэше и загружать с упреждением. Содержимое отдаётся клиенту в виде копий слоев и блоков (документ разбивается на множество кусочков из отдельных изображений), при этом по сети передаются только изменившиеся части интерфейса, а все неизменившиеся кусочки документа кэшируются на стороне клиента. Управление курсором и выделение областей текста также реализованы силами JavaScript на стороне клиента. Таким образом, просмотр и навигация по уже переданному клиенту образу документа производится без лишней нагрузки на сервер.
Серверная часть включает в себя два компонента: LibreOfficeKit, используемый в LibreOffice для выполнения вычислений, мозаичной отрисовки и многослойной компоновки документа, и новый серверный компонент Tile Server для организации взаимодействия с браузером, передачи изображений с частями интерфейса, организации кэширования кусочков изображений и работы с хранилищем документов. В зависимости от число подключенных клиентов Tile Server запускает для каждого клиента отдельные экземпляры LibreOfficeKit, которые выполняются в изолированном окружении. Для всех экземпляров LibreOfficeKit используется общий кэш.
Для LibreOffice Online также развиваются средства совместного редактирования, позволяющие нескольким людям одновременно работать с одним документом. Совместное редактирование будет реализовано с применением двух упрощений: Во-первых, решено использовать для отрисовки один экземпляр LibreOfficeKit для всех участников работы с документом, т.е. всем участникам будет передаваться один набор кусочков документа, что обеспечит синхронное отображение изменений. Во-вторых, будет выделен общий набор операций с абстрактным документом, таких как выделение блоков, перемещение по тексту, редактирование, удаление и перемещение объектов, которые будут обрабатываться индивидуально для каждого участника группы совместного редактирования.
Источник: http://www.opennet.ru/opennews/art.shtml?num=41911
|
0 | Tweet | Нравится |
|