Коллективная работа

Введение

Блиц Бюджет для Android позволяет вести совместный учет доходов и расходов. Вот несколько примеров:

  1. Полная синхронизация между устройствами;
  2. Совместный финансовый учет только по выбранным счетам, проектам, персонам, контрагентам или даже статьям;
  3. Сбор данных на одном устройстве, в случае, когда, скажем, родители отслеживают расходы детей.

Любое устройство, на котором установлена программа, может стать узлом обмена (см. узел обмена) и получать или передавать изменения. Каждый узел обмена может обмениваться информацией с другими узлами.

Примечание

Версия Free может передавать, но не может принимать сообщения. Версия Pro не содержит ограничений.

Программа имеет гибкие настройки, регулирующие процесс обмена. Так например, можно разрешить принимать только новые операции от одного узла, и запретить принимать измененные. Для каждого узла обмена действуют свои настройки.

В целях повышения безопасности все сообщения между узлами шифруются, для каждого узла можно задать свой пароль, который будет использоваться для шифрования / дешифрования передаваемой информации.

Для совместной работы не требуется учетная запись Dropbox или других сервисов.

Начало работы

Выбор исходных данных

Предположим, что Алиса и Боб хотят вести совместный финансовый учет. Предварительно, им нужно определиться какая ситуация для них ближе:

  1. В начале работы у Алисы и Боба будут одинаковые данные.
  2. Алиса и/или Боб уже давно ведут учет и не хотят объединять все данные, а планируют синхронизировать лишь отдельные счета.

В первом случае Алиса или Боб (для определенности пусть это будет Алиса) делает резервную копию данных. Затем Алиса передает резервную копию данных Бобу и тот восстанавливает ее у себя на устройстве. Теперь у Алисы и Боба идентичные базы данных. Для корректной работы обмена необходимо, что идентификаторы баз данных различались, поэтому Боб выполняет дополнительную сервисную операцию, формирует новый идентификатор на своем устройстве.

Примечание

После восстановления данных из резервной копии для нового узла обмена необходимо сформировать новый идентификатор.

_images/exchangenewid-005-select-actions.png _images/exchangenewid-010-select-exchange.png _images/exchangenewid-020-select-exchange_nodes.png _images/exchangenewid-030-select-actions.png _images/exchangenewid-040-select-new-id.png

Теперь Алиса и Боб готовы к настройке обмена.

Во втором случае никаких предварительных действий совершать не нужно. Алиса и Боб сразу готовы к настройке обмена.

Обмен идентификаторами

Для работы обмена Алисе и Бобу необходимо обменяться идентификаторами узлов обмена и сохранить их в справочнике узлов. Для этого Алиса открывает справочник Узлы обмена используя меню Действия ‣ Обмен данными ‣ Узлы обмена. В справочнике узлов обмена Алиса выбирает пункт меню Отправить идентификатор и отправляет идентификатор своего узла по электронной почте Бобу.

_images/exchangesendid-005-select-actions.png _images/exchangesendid-010-select-exchange.png _images/exchangesendid-020-select-exchange_nodes.png _images/exchangesendid-030-select-actions.png _images/exchangesendid-040-select-share-id.png _images/exchangesendid-050-mail-id.png

Боб принимает сообщение, создает новый узел обмена, указывает название и копирует полученный идентификатор. После этого отправляет свой идентификатор Алисе.

_images/exchangenewnode-005-select-actions.png _images/exchangenewnode-010-select-exchange.png _images/exchangenewnode-020-select-exchange_nodes.png _images/exchangenewnode-030-click-fab.png _images/exchangenewnode-040-setup_node.png

Алиса, в свою очередь, принимает сообщение Боба и создает новый узел обмена с идентификатором, который указан в сообщении Боба.

Включение обмена

После обмена идентификаторами Алиса и Боб включают в настройках синхронизацию данных между узлами обмена.

_images/exchangeenable-005-select-actions.png _images/exchangeenable-020-click-on-actions-menu.png _images/exchangeenable-025-select-exchange.png _images/exchangeenable-030-check-use-exchange.png

Теперь все изменения, которые делает Алиса отправляются Бобу и наоборот. Приложение синхронизирует изменения автоматически примерно один раз в пять минут при наличии Wi-Fi или мобильного интернета. Функция синхронизации автоматически отключается, если нет интернет-соединения или во время сна устройства. Благодаря этому экономится трафик и электроэнергия аккумулятора.

Вот точный алгоритм запуска обмена:

  1. После запуска обмена программа проверяет включен экран телефона или нет.
    1. Если экран включен, то следующее время срабатывания - через 5 мин. от текущего.
    2. Если экран выключен, то следующее время срабатывания - через 60 мин. от текущего.
    3. Оба будильника не имеют права будить телефон.
  2. При открытии главного экрана программы выполняется проверка на следующее время срабатывания будильника.
    1. Если следующее время срабатывания находится в пределах 10 мин. от текущего, то ничего не происходит.
    2. Если следующее время срабатывания находится в пределах более 10 мин. от текущего, то запускается обмен в фоновом режиме и далее программа определяет следующее время срабатывания по п. 1
  3. Если сети нет, то обмен отключается полностью до следующего появления сети.

При необходимости всегда можно вызвать синхронизацию вручную.

Как работает обмен данными

Приложение Блиц Бюджет для Android ведет журнал изменений справочников и операций. Каждому узлу обмена отправляются изменения, которые произошли либо с момента получения предыдущего пакета изменений, либо с момента создания узла. Важна последовательность обмена: Алиса отправляет сообщение Бобу, Боб - Алисе и т.д. Если узел обмена Алисы не получит ответ Боба, то не будет отправлять следующий пакет изменений до тех пор, пока не придет ответ.

Синхронизация всех элементов справочников выполняется в несколько этапов:

  1. синхронизация по уникальному идентификатору;
  2. синхронизация по ключевым фразам или коду;
  3. синхронизация по наименованию.

Каждый следующий шаг синхронизации выполняется в случае, если предыдущий закончился неудачей. Если элемент не удалось найти, то программа создает новый, используя при этом значения по умолчанию, указанные в настройке узла.

Синхронизация операций выполняется только по уникальному идентификатору.

Расширенная настройка

Алиса и Боб могут ограничить объем передаваемой информации. Есть два варианта задания ограничений:

  1. разрешенная область данных;
  2. запрещенная область данных.

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

В случае, если один и тот же элемент справочника одновременно попадает в разрешенную и запрещенную область, то более высокий приоритет имеет запрещенная область.

На основании областей данных формируется список операций, постоянных операций и справочников для передачи узлу обмена.

Алиса и Боб могут ограничить объем принимаемой информации. Можно полностью отказаться принимать новые, измененные или удаленные объекты. Или можно конкретизировать какой тип объектов не принимать в случае создания, изменения или удаления.

Настройка передачи данных

Для повышения безопасности передачи данных следует указать пароль, которым будут зашифрованы сообщения между узлами обмена. Пароль Алисы должен совпадать с паролем Боба.

Также Алисе и Бобу следует указать какой вид коммуникаций использовать для обмена сообщениями: Wi-Fi и/или мобильный интернет.

Значения по умолчанию

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

Перенос данных на новый телефон с сохранением настроек обмена

В случае работающего обмена, переход на новый телефон следует выполнять в порядке:

  1. На старом телефоне в настройках выключить синхронизацию.
  2. Сделать резервную копию.
  3. Восстановить резервную копию на новом телефоне.
  4. Включить синхронизацию на новом телефоне.