2011-05-31 194 views
5

我的問題是:如何根據以下要求實施簡單的DMS(文檔管理)?實施簡單的文檔管理

  1. DMS shouls是分佈式web應用程序。
  2. 支持文檔版本控制。
  3. 支持文件鎖定。
  4. 文檔搜索。

我已經明確了我想要使用的技術。我將使用Sring MVC,Hibernate和關係數據庫(很可能是MYSQL)。

有一點我不是很清楚,如果我需要使用webdav,因爲我只能上傳或下載文檔。我必須要做的事情,因爲我需要完成第2點,尤其是第3點。這是正確的路嗎?

任何與此有關的例子或經驗將非常方便:)。可能米爾頓不是選擇webdav的最佳圖書館嗎?

+0

Okey我看到我更新我的問題,由DMS我的意思是文件管理。 – Eduard 2011-06-02 08:24:15

回答

3

@Eduard,關於對第三方的依賴 - 是你是做這種大學/大學演習還是會影響生產環境中的真實用戶?

冒着聽起來很冒昧的風險;不要重新實現輪子!我肯定會再次打電話來使用JCR,這種方式你依賴於標準而不是第三方實現。

JCR是一個明確的標準(這意味着很多人投入商業努力(即大量的現金和專業知識))。我會認真考慮調查JCR--將其視爲第三方提供實施(無供應商鎖定)的API。

查看您將獲得的即用即用功能,我相信99-110%的功能需要通過JCR實現提供。此外,您將從實際使用的代碼在數百個人的真實世界中得到測試。

在哪裏我會從不同bmscomp在暗示JackRabbit用http://jackrabbit.apache.org/

+0

你讓我相信:)因爲你都在說同樣的事情+1。 – Eduard 2011-06-02 12:00:20

+0

很高興聽到它=)。 如果一種非現成的產品提供了您所需要的80%(並且從一開始就被設計爲一個可擴展的API),那麼您將獲得更多的進展,並有可能將您的更具體的擴展貢獻回更廣泛的社區(通過代碼提交,博客或wiki帖子) 在webdav正面:http://jackrabbit.apache.org/jackrabbit-webdav-library.html 祝你好運和快樂編碼 – earcam 2011-06-02 22:38:55

+0

編輯:看着JackRabbit接近一點我認爲它提供了99.99%以上的效果(這是一個活躍的項目,並且在郵件列表和Jira上會有很多支持)。從你列出的四點來看,所有內容都被覆蓋了,如果合作鎖定不是你可以插入後的內容:http://jackrabbit.apache.org/api/2.1/org/apache/jackrabbit/core/util/ RepositoryLockMechanism.html和http://wiki.apache.org/jackrabbit/RepositoryLock – earcam 2011-06-02 22:45:24

3

選項1:

我不知道有關WebDAV,它沒有實際的經驗。但我強烈建議你使用像MongoDB這樣的文檔數據庫。

隨着MongoDB中,您可以:
1. Handle document versions
2. MongoDB的具有atomic operations,您可以添加文件鎖定的邏輯。

這會給你一些搜索你的文檔商店的額外好處。

選項2:

Apache Jackrabbit:內容庫

內容存儲庫是一個層次 內容存儲與結構的 支持和非結構化內容, 全文搜索,版本控制, 交易,觀察等等。

+0

這聽起來不錯,而且我看着它。但可能我正在尋找更多的答案,這將使我更多地瞭解如何自行開發此功能。 MogoDB是太具體的數據庫 - 我需要我的應用程序不是如此特定於數據庫。而當我只需要存儲文檔時,使用內容存儲庫似乎過度。 – Eduard 2011-06-02 08:49:32

2

考慮使用JCR Java內容存儲庫 http://en.wikipedia.org/wiki/Content_repository_API_for_Java或者你可以看看在露天或和外框架所做的工作,他們的工作做得很好

+1

是的,他們做得很好,但他們的解決方案對我而言太複雜了。我只需要存儲文檔版本就可以鎖定它們並搜索它們。另一件事是我不想依賴第三方解決方案太多。所以我更喜歡自己開發這個。 – Eduard 2011-06-02 08:51:48

2

您可以使用這些開源項目,以滿足您的要求:

  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使用Jboss + J2EE + Ajax web(GWT)+ Jackrabbit(lucene)開源技術。 http://www.openkm.com/

1

Spring MVC是一個不錯的選擇。如果你想使用關係數據庫,那麼也可以檢查出Datanucleus。至少JDO層(可能還有JPA層)提供版本控制支持。爲了搜索,我推薦基於lucene的apache solr,它具有優秀而強大的全文搜索功能。

雖然webdav看起來像是一個簡單的交叉平臺文件傳輸協議的自然選擇,但我從來沒有過很好的體驗。客戶端或服務器不能正常工作(konqueror,Internet Explorer,zope 2,...)。所以從協議中抽象出來並提供多種訪問文件的方式。

+0

+1我認爲當我開始搜索這個主題時,webdav比我想象中的更麻煩。 – Eduard 2011-06-06 08:49:30