Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

implementing simple Document management

Tags:

java

webdav

dms

My qustion is: How would you go on implementing simple DMS(document management) based on following requirements?

  1. DMS shouls be distributed web application.
  2. Support for document versioning.
  3. Support for document locking.
  4. Document search.

Im already clear on what technologies I want to use. I will use Sring MVC, Hibernate and relational (most likely MYSQL) database.

One thing Im not very clear on is if I need to use webdav, since I could just upload or download documets. I thing I have to because I need to acomplish point 2. and especially point 3. somehow. Is this the right way to go?

Any examples or experience with this would come very handy :). May be Milton is not the best library to pick for webdav?

like image 656
Eduard Avatar asked May 31 '11 07:05

Eduard


4 Answers

@Eduard, regarding dependencies on 3rd parties - are you doing this as a college/university exercise or something that will affect real users in a production environment?

At the risk of sounding very pretentious; don't reimplement the wheel! I'd definitely 2nd the call to use JCR, this way you are depending a standard and not a 3rd party implementation.

JCR is a well defined standard (that means a lot of people invested commercial effort (i.e. cash and expertise in huge amounts) into this). I would seriously reconsider looking into JCR - think of it as an API where 3rd parties provide the implementation (no vendor lockin).

Have a look at the features you'll get out-of-the-box, I believe 99 - 110% of the functionality you require is available through a JCR implementation. Plus you'll benefit from the fact the code you'll be using has been tested by hundreds of people in real world situations.

Where I'd differ from bmscomp is in suggesting JackRabbit http://jackrabbit.apache.org/

like image 112
earcam Avatar answered Oct 16 '22 10:10

earcam


Option 1:

I am not sure about webdav, no real experience on it. But I would highly recommend you using a Document database like MongoDB.

With mongodb, you can:
1. Handle document versions
2. MongoDB has atomic operations, you can add your logic of document locking.

This will give you some awesome added benefits of search your documents store.

Option 2:

Apache Jackrabbit: A Content repository

A content repository is a hierarchical content store with support for structured and unstructured content, full text search, versioning, transactions, observation, and more.

like image 26
zengr Avatar answered Oct 16 '22 08:10

zengr


Think about using JCR Java content Repository http://en.wikipedia.org/wiki/Content_repository_API_for_Java or you can have a look at the job done on Alfresco or and Exo framework they did a good job

like image 2
bmscomp Avatar answered Oct 16 '22 08:10

bmscomp


You can use these open source projects to meet your requirements:

  1. http://sourceforge.net/projects/logicaldoc/ - LogicalDOC is a modern document management system with a nice interface, easy to use and very fast. It uses open source Java technologies such as GWT, Spring, Lucene in order to provide a flexible and scalable DMS platform. http://www.logicaldoc.com

  2. http://sourceforge.net/projects/openkm/ - OpenKM Document Management - DMS Updated 2011-05-25 OpenKM is powerful scalable Document Management System (DMS). OpenKM uses Jboss + J2EE + Ajax web (GWT) + Jackrabbit (lucene) Open Source technologies. http://www.openkm.com/

like image 2
JotaSan Avatar answered Oct 16 '22 09:10

JotaSan