|
Животные радости |
На главную |
|
|
||
Purpose: base description of mRIS (my remote sync)
Author: Al Markov Содержание:
Введение Программа ориентирована на людей, у которых есть несколько компьютеров за
которыми они более или менее постоянно работают. После этого часто возникает
желание иметь один и тот же набор файлов на этих машинах. Например записную
книжку, которую кто держит в Excel, кто в MS Outlook, кто в простых текстовых
файлах. Или любовно собранные и отлаженные шаблоны документов. Или просто
фотографии любимой кошки. Но эти компьютеры не соединены между собой сетью и
данные на них нельзя синхронизовать между собой простым разглядыванием двух
каталогов в Проводнике (Win Commander'е, Far'е, Фрегате, кто, что любит).
Тогда файлы начинают носить между компьютерами на дискетах, флэш-брелках,
компакт-дисках, ... Но в какой-то момент становится непонятным где что-то
меняли, а где не меняли, новейшие данные затираются вчерашними, в общем
наступает неразбериха. Иногда полная, иногда частичная. Вот в этом случае и
нужна программа, которая будет отслеживать изменение на каждой из машин и
предлагать их перенести на другую машину.
Итак, программа предназначена для синхронизация данных между компьютерами
без их прямого соединения, такого как - локальная сеть, vpn, параллельный и
последовательный порты, и т.д.. Посредником (промежуточным носителем) может
выступать любое перезаписываемое устройство - CD-RW, flash, internet disk.
Главная отличительная черта - доступ к промежуточнуму устройству по очереди,
сессии синхронизации у каждого из компьютеров не совпадают по времени.
Существует большое количество программ для синхронизацию данных, среди них
есть даже программы, работающие через посредник. Причины, по которым эти
программы не подходят, описаны в разделе <аналоги>.
Программа ориентирована на людей. "Точка. Абзац. Красная строка."
Основное требование - синхронизация данных между компютерами через сменный
носитель.
Требуется поддержка MS Windows. Поддержка остальных систем - как получится. В
обязательное не включено, но не исключается.
В качестве минимальной единицы данных могут выступать файлы целиком. "Патчи"
не поддерживаются.
Программа должна обрабатывать следующие ситуации: Программа должна уметь обнаруживать конфликты и предоставлять средства их
разрешения.
Объем базы данных должен быть линейно пропорционален количеству файлов, а не
их объему.
Объем пересылаемой информации должен быть минимален и зависеть только от
объема изменений.
Таким образом, из двух предыдущих пунктов вытекает, что программа не должна
держать копию всех файлов ни локально, ни на сменном носителе.
Программа должна предоставлять полную и ясную информацию о том, что она будет
делать с файлами и почему - "заменить файл a.txt из-за изменения даты и
crc/md5: старая дата ..., новая дата ..., старая crc/md5, новая crc/md5."
Возможность просмотра старого и нового файла перед обновлением.
Программа должна управляться из командной строки.
Должна быть возможность настройки исключаемых файлов и директорий, как
индивидуально, так и по маске, как постоянно, так и одноразово.
Желательно: наличие пользовательских "hook" на разные события.
Желательно: простота установки и используемых средств. То есть не
приветствуется использование большого количества обяазательных сторонних
пакетов (Cygwin содержит уж очень много всего, его очень заманчиво
использовать).
Тогда надо вести разработку на каком-нибудь sourceforge.net.
Minors: Majors: Minors: Majors:
- проще координация разработчиков; :-) Глупо делать закрытую лицензию для программы, ориентированной на
bash(cygwin), работающей только из командной строки....
bash, tar, zip/unzip, md5/crc32, grep, tr, ... - Cygwin, Linux.
C++ - Borland C++ Builder, MS VC, FLTK, ...
Data base - text files, interbase, My SQL
Существует большое количество программ, ориентированных прежде всего на
синхронизацию данных, которые доступны одновременно. Начиная от Unix'вых rcp,
rsync и до всяких маленьких шароваров (см. <аналоги>). У всех есть тот или иной
недостаток. Главное, что они ориентированы, в первую очередь, на другие задачи
- резервное копирование, синхронизация без посредника (прямая синхронизация).
Нет синхронизации через посредник.
Задание
Исключаемые файлы
Исключаемые пути
Конфликт - изменение одного и того же файла на двух удаленных компьютерах
между сессиями синхронизации.
Посредник
Сессия синхронизации
Снимок системы
The end
Требования и ограничения
Лицензия
Инструментарий
Аналоги
Глоссарий
Введение
Требования и ограничения
- создание нового файла;
- удаление файла;
- изменение файла (дата, размер, crc/md5);
- переименование/перемещение файла;
- конфликт
Лицензия
Свободная
- все на английском;
- нельзя продавать;
- надо больше и понятнее делать документацию (?), и вообще больше тратить
времени и сил на координацию. Это если кто подключится.
- возможное участие многих людей;
- поддержка хостинга (место, CVS, bug-list, ...);
- возможность включить эту разработку в свое портфолио, работодателям
можно показывать исходные коды ("вот как я пишу") и/или результаты
("вот как я умею организовывать разработку и что получается");
Своя
- нужно искать или организовывать место;
- меньшее кол-во разработчиков.
- возможность продавать, если получится хорошо.
Инструментарий
Аналоги
VuBrief
AllwaySync
SMsync
ZSync
FullSync
Глоссарий