Система управления документами: что использовать в качестве хранилища данных (хранилище документации документов)? - PullRequest
5 голосов
/ 09 сентября 2010

Хочу сделать систему управления документами (интерфейс на Ruby).
Что профессиональные решения (Alfresco, Liferay, социальный офис, другие) используют для хранения и контроля версий документов?
Что еще я могу использовать?

Ключевые моменты:

  • оптимизация дискового пространства (дельта, сжатие ...)
  • 1010 * версионирование *
  • способность индексировать документы (может быть внешним)
  • возможность делать резервные копии во время выполнения (оперативное горячее резервное копирование)
  • блокировка
  • масштабируемость на большом объеме данных
  • обеспечить целостность данных (хеширование?)
  • разрешения
  • транзакционный
  • Поддержка рабочего процесса (необязательно)

Бонусные баллы:

Есть книги по этому вопросу?

Ответы [ 3 ]

5 голосов
/ 09 сентября 2010

Большинство корпоративных решений для управления документами, которые я видел ( Cimage , Documentum , LiveLink ), определенно не заботятся о # 1.Хранилище является относительно дешевым, особенно если это хранилище или обработка (хранение и получение).Они в основном полагаются на хранилище на основе файловой системы - возможно, с абстракцией имени, такой, что ShoppingList.doc может стать 20100909100101a.doc.rev1, с базой данных, отслеживающей имя, сохраненное имя, ревизии и различные другие данные {тип MIME, заголовки и свойства и т. Д}.Не создавая дельта + сжатие, вы очень легко индексируете любое количество существующих продуктов / агорифмов.При таком подходе управление версиями также чрезвычайно простое.

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

(S) FTP или CIFS-хранилищеКроме того, процесс позволит вашему программному обеспечению работать на сервере приложений со скромным пространством, но хранить файлы + историю на каком-либо файловом или облачном сервере - хотя это не сильно отличается от хранилища на основе файловой системы.

1 голос
/ 12 ноября 2010

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

Он поставляется с привязками ruby, хотя я не личнознакомы с их качеством.

0 голосов
/ 09 сентября 2010

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

...