Система управления документами: что использовать в качестве бэкэнда хранения (Docs Content Repository)?
-
01-10-2019 - |
Вопрос
Я хочу сделать систему управления документами (интерфейс в Ruby).
Что делают профессиональные коллиинты (Alfresco, Liferay Social Office, другие) для хранения и управлений документов?
Что еще я могу использовать?
Ключевые моменты:
- Оптимизация пространства для хранения (Deltas, сжатие ...)
- версию
- Возможность индексирования документов (может быть внешним)
- Возможность сделать резервные копии во время выполнения (живая горячая резервная копия)
- Блокировка?
- Масштабируемость на большом объеме данных
- Убедитесь, что целостность данных (хеширование?)
- Разрешения
- транзакционный
- Поддержка рабочего процесса (необязательно)
Бонусные очки:
- как делает Знание сделай это?
- как делает Liferay Социальное Офис Сделай это (JCR?)?
- как делает Alfresco сделай это ?
Любые книги по этому вопросу?
Решение
Большинство решений для управления документами предприятия, которые я видел (Приоритет, Документ, Живой) Определенно не заботится о # 1. Хранение относительно дешево, особенно если это хранилище VS обработки (магазин и рентривер). В основном они полагаются на хранилище на основе файловой системы - возможно, с именем абстракции такой, что ShoppingList.doc
возможно становится 20100909100101a.doc.rev1
, с отслеживанием базы данных данное имя, хранимое имя, ревизии и различные другие данные типа MIME, заголовки и свойства и т. Д.}. Не генерируя Deltas + сжатие, вы очень легко получаете индексацию от любого количества существующих продуктов / аморитам. Версификация также чрезвычайно проста с таким подходом.
В зависимости от размера и масштаба вы строите, вы также можете хранить версию файлов в базе данных.
Процесс хранения FTP или CIFS или CIFS также позволит вашему программному обеспечению работать на сервере приложений с помощью скромного пространства, но хранить файлы + истории на файле или облачный сервер какой-то - хотя это не сильно отличается от файловой системы место хранения.
Другие советы
Ты знаешь, мой первый инстинкт будет просто используйте Subversion. Отказ Вам понадобится внешняя индексация, и если вы хотите хранить хеши, вам нужно будет написать какой-то код, чтобы сделать это самостоятельно, но все остальное подходит.
Он судет с рубиновыми привязками, хотя я не лично знаком с их качеством.
Alfresco обычно используется в качестве бэкэнда, он имеет хороший API отдыха. Вы также можете определить свою собственную интеграцию API, если вам не нравится включенная.