Сап, анон. Короче ситуация такая. Только учти, это реально важно, поэтому вникай.
Есть большая библиотека научных и научно-популярных книг по всем основным направлениям науки. Книги не для специалистов, а вообще для людей, желающих сформировать у себя целостную научную картину мира. Библиотека хранится в виде структуры папок и входящих в них файлов. На пикрилейтед, например, книги по Этологии (классификация неточная, не критиковать). Такие же коллекции есть по всем остальным наукам, естественным и гумманитарным. Все эти книги я годами собирал по всему интернету и в итоге пришел к выводу, что одному всё собрать - нереально. У меня лежит еще 70 гигабайт неразобранных научных книг, которые нужно интегрировать в библиотеку, и еще неизвестно сколько этих книг в интернете.
Итак, представь. Есть (вернее, будут) три группы людей.
1) Первая группа - это люди, которые через веб или гуи интерфейс логинятся под своими аккаунтами и занимаются ведением библиотеки. Загружают в нее новые книги, перемещают файлы из одной папки в другую, переименовывают файлы, удаляют файлы и т.д. При этом ведется лог всех изменений в библиотеке.
2) Вторая группа - это администраторы. Администраторы смотрят на лог и могут отменить какое-то отдельное изменение в библиотеке либо все изменения, сделанные отдельным пользователем.
3) Третья группа - простые пользователи библиотеки, хранящие её у себя на компьютере частично или полностью. Но при этом необходимо, чтобы все изменения и обновления, сделанные на сервере, транслировались бы и им. Другими словами - происходила синхронизация. И желательно, чтобы все это делалось по принципу p2p. Хотя и не обязательно. Если просто будут скачивать с сервера то тоже хорошо, главное - синхронизация.
Ну а теперь вопросы.
Какое существует приложение (или группа приложений), которые бы позволяли реализовать весь перечисленный функционал? То есть:
- Предоставлять через интернет доступ к папке на сервере на основе логина и пароля и возможность управлять файлами в этой папке.
- Вести лог изменений и позволять откатывать эти изменения.
- Позволять нормально скачивать (желательно, но не обязательно, через p2p. как в торрентах или хабах) себе на комп всю или часть библиотеки и в после этого синхронизировать свою копию с обновлениями на центральном сервере.
Вот, в общем-то, и всё. Уже гуглил: Distributed File System, Revision Control Software, CVS (Concurrent Versioning System), различные сервисы для бекапа, хранения и синхронизации данных (Dropbox, Google Storage и т.д.), WebDAV, FTP, Document Management Systems. Рассматривал даже такой вариант, где пользователи подключаются к серверу через удаленное управление и там работают с библиотекой, но всё равно не придумал как реализовать перечисленный ваше функционал. WebDAV выглядит наиболее привлекательно, но как обеспечить разграничение доступа и отслеживание+откат изменений? В общем, я в отчаянии, анон. Ты - моя последняя надежда. Только подумай хорошо, какие программы реально можно использовать чтобы реализовать необходимый функционал. Всё, спасибо за внимание, вроде всё понятно объяснил.