внедрение простого управления документами - PullRequest
5 голосов
/ 31 мая 2011

Моя задача: как бы вы внедрили простое DMS (управление документами) на основе следующих требований?

  1. DMS будет распространяться через веб-приложение.
  2. Поддержка версий документов.
  3. Поддержка блокировки документов.
  4. Поиск документов.

Мне уже ясно, какие технологии я хочу использовать. Я буду использовать Sring MVC, Hibernate и реляционную (скорее всего, MYSQL) базу данных.

Одна вещь, с которой я не очень хорошо понимаю, - нужно ли мне использовать webdav , поскольку я могу просто загружать или скачивать документы. Я думаю, что должен выполнить пункт 2. и особенно пункт 3. как-то. Это правильный путь?

Любые примеры или опыт с этим очень пригодятся :). Может быть, Милтон - не лучшая библиотека для вебдавов?

Ответы [ 5 ]

3 голосов
/ 02 июня 2011

@ Эдуард, относительно зависимостей от третьих лиц - вы делаете это как упражнение колледжа / университета или что-то, что повлияет на реальных пользователей в производственной среде?

На риск звучит очень претенциозно; не переопределять колесо! Я определенно предпочел бы использовать вызов JCR, так что вы зависите от стандарта, а не от сторонней реализации.

JCR - это четко определенный стандарт (это означает, что многие люди вложили в это коммерческие усилия (т. Е. Деньги и опыт в огромных количествах). Я бы серьезно пересмотрел рассмотрение JCR - воспринимайте его как API, в котором третьи стороны предоставляют реализацию (без блокировки поставщика).

Взгляните на функции, которые вы получите из коробки, я считаю, что 99 - 110% необходимых вам функций доступны в реализации JCR. Кроме того, вы получите пользу от того факта, что код, который вы будете использовать, был протестирован сотнями людей в реальных ситуациях.

Я бы отличался от bmscomp предложением JackRabbit http://jackrabbit.apache.org/

3 голосов
/ 02 июня 2011

Вариант 1:

Я не уверен насчет webdav, реального опыта работы с ним нет.Но я настоятельно рекомендую вам использовать базу данных документов, например MongoDB.

С mongodb вы можете:
1. Обрабатывать версии документов
2. MongoDB имеет атомарныйОперации , вы можете добавить свою логику блокировки документов.

Это даст вам некоторые дополнительные возможности поиска в вашем хранилище документов.

Вариант 2:

Apache Jackrabbit :Репозиторий контента

Репозиторий контента - это иерархическое хранилище контента с поддержкой структурированного и неструктурированного контента, полнотекстового поиска, управления версиями, транзакций, наблюдения и т. Д.

2 голосов
/ 04 июня 2011

Вы можете использовать эти проекты с открытым исходным кодом для удовлетворения ваших требований:

  1. http://sourceforge.net/projects/logicaldoc/ - LogicalDOC - это современная система управления документами с приятным интерфейсом, простой в использовании и очень быстрый. Он использует технологии Java с открытым исходным кодом, такие как GWT, Spring, Lucene, чтобы обеспечить гибкую и масштабируемую платформу DMS. http://www.logicaldoc.com

  2. http://sourceforge.net/projects/openkm/ - Управление документами OpenKM - DMS Обновлено 2011-05-25 OpenKM - это мощная масштабируемая система управления документами (DMS). OpenKM использует технологии Open Source Jboss + J2EE + Ajax web (GWT) + Jackrabbit (lucene). http://www.openkm.com/

2 голосов
/ 02 июня 2011

Подумайте об использовании JCR Java Content Repository http://en.wikipedia.org/wiki/Content_repository_API_for_Java, или вы можете взглянуть на работу, выполненную на Alfresco, или в среде Exo, они хорошо поработали

1 голос
/ 06 июня 2011

Spring MVC - хороший выбор.Если вы хотите использовать реляционную базу данных, то можете также проверить Datanucleus.По крайней мере уровень JDO (плюс, может быть, уровень JPA) обеспечивает поддержку версий.Для поиска я рекомендую apache solr, основанный на lucene, который обладает отличными и мощными возможностями полнотекстового поиска.

Хотя webdav кажется естественным выбором в качестве простого и межплатформенного протокола передачи файлов, у меня никогда не было хороших впечатлений.Клиент или Сервер не работал должным образом (Konqueror, Internet Explorer, Zope 2, ...).Поэтому абстрагируйтесь от протокола и предоставьте несколько способов доступа к файлу.

...