2011-05-31 13 views
5

Mi pregunta es: ¿Cómo implementaría DMS (gestión de documentos) simple basado en los siguientes requisitos?implementación simple Administración de documentos

  1. DMS shouls se distribuirá la aplicación web.
  2. Soporte para el control de versiones de documentos.
  3. Soporte para bloqueo de documentos.
  4. Búsqueda de documentos.

ya estoy claro en lo tecnologías que quiero usar. Utilizaré Sring MVC, Hibernate y la base de datos relacional (probablemente MYSQL).

Una cosa que no estoy muy clara es si necesito usar webdav, ya que solo podía cargar o descargar documentos. Creo que tengo que hacerlo porque necesito cumplir el punto 2. y especialmente el punto 3. de alguna manera. ¿Es este el camino correcto?

ejemplos o experiencia con este vendría :) muy práctico. ¿Puede ser que Milton no es la mejor biblioteca para elegir webdav?

+0

Okey veo Ill actualizar mi pregunta, por DMS me refiero a la gestión de documentos. – Eduard

Respuesta

3

@Eduard, en relación con las dependencias en 3 partes - son ¿Estás haciendo esto como un ejercicio de colegio/universidad o algo que afectará a los usuarios reales en un entorno de producción?

A riesgo de sonar muy pretencioso; no reimplemente la rueda! Definitivamente la segunda vez que llamo para usar JCR, de esta manera depende de una implementación estándar y no de una tercera parte.

JCR es un estándar bien definido (lo que significa que mucha gente invertido esfuerzo comercial (es decir, dinero en efectivo y experiencia en grandes cantidades) en esto). Reconsideraría seriamente la idea de buscar en JCR; piense en ello como una API en la que los terceros proporcionan la implementación (sin bloqueo de proveedor).

Eche un vistazo a las características que obtendrá de fábrica, creo que el 99 - 110% de la funcionalidad que necesita está disponible a través de una implementación de JCR. Además, se beneficiará del hecho de que el código que utilizará ha sido probado por cientos de personas en situaciones del mundo real.

donde había difiero de bmscomp es la hora de sugerir JackRabbit http://jackrabbit.apache.org/

+0

Me estás convenciendo :) ya que todos dicen lo mismo +1. – Eduard

+0

Me alegra escucharlo =). Si un producto autónomo ofrece más del 80% de lo que necesita (y está diseñado desde el principio como una API extensible), podrá ir mucho más allá y tener la posibilidad de volver a agregar sus extensiones más específicas. la comunidad en general (ya sea a través de presentaciones de código, blog o wiki mensajes) en el frente webdav: http://jackrabbit.apache.org/jackrabbit-webdav-library.html Buena suerte y feliz de codificación – earcam

+0

Editar: Mirando JackRabbit un poco más cerca Creo que está ofreciendo más del 99,99% de lo que está buscando (y es un proyecto activo y habrá mucho apoyo en las listas de correo y Jira). De los cuatro puntos que enumera, todos están cubiertos y si el bloqueo cooperativo no es lo que busca, es conectable: http://jackrabbit.apache.org/api/2.1/org/apache/jackrabbit/core/util/ RepositoryLockMechanism.html y http://wiki.apache.org/jackrabbit/RepositoryLock – earcam

3

Opción 1:

no estoy seguro acerca de WebDAV, sin experiencia real en él. Pero le recomiendo que use una base de datos de documentos como MongoDB.

Con mongodb, puede:
1. Handle document versions
2. MongoDB tiene atomic operations, puede añadir su lógica de bloqueo de documentos.

Esto le dará algunos beneficios adicionales impresionantes de la búsqueda de su tienda documentos.

Opción 2:

Apache Jackrabbit: un repositorio de contenido

Un repositorio de contenido es un jerárquica tienda contenido con soporte para estructurado y contenido no estructurado, búsqueda de texto completo, control de versiones, transacciones, observación y más.

+0

Esto suena bien y lo investigaré. Pero puedo estar buscando más respuestas que me lleven más a cómo desarrollar esta funcionalidad por mí mismo. MogoDB es demasiado específico. DB. Necesito que mi aplicación no sea tan específica para la base de datos. Y usar el repositorio de contenido cuando solo necesito almacenar documentos parece excesivo. – Eduard

2

Piense en usar JCR de Java Content Repository http://en.wikipedia.org/wiki/Content_repository_API_for_Java o puede tener una mirada en el trabajo realizado sobre Alfresco o Exo y el marco que hicieron un buen trabajo

+1

Sí, hicieron un buen trabajo pero su solución es demasiado compleja para mí. Solo necesito guardar la versión de los documentos para ponerlos en su lugar y buscarlos a través de ellos. Otra cosa es que no quiero depender demasiado de las soluciones de terceros. Así que prefiero desarrollar esto solo. – Eduard

2

Puede utilizar estos proyectos de código abierto para satisfacer sus requisitos:

  1. http://sourceforge.net/projects/logicaldoc/ - LogicalDOC es un sistema de gestión de documentos con moderna una interfaz agradable, fácil de usar y muy rápida. Utiliza tecnologías Java de código abierto como GWT, Spring, Lucene para proporcionar una plataforma DMS flexible y escalable. http://www.logicaldoc.com

  2. http://sourceforge.net/projects/openkm/ - OpenKM de gestión de documentos - DMS Actualizado 2011-05-25 OpenKM es potente y escalable de documentos del Sistema de Gestión (DMS). OpenKM utiliza tecnologías de código abierto Jboss + J2EE + Ajax web (GWT) + Jackrabbit (lucene). http://www.openkm.com/

1

Spring MVC es una buena opción. Si desea utilizar una base de datos relacional, también puede consultar Datanucleus. Al menos la capa JDO (más tal vez la capa JPA) proporciona soporte de versiones. Para la búsqueda, recomiendo apache solr, basado en lucene, que tiene capacidades de búsqueda de texto completo excelentes y potentes.

Aunque webdav parece ser la elección natural como un protocolo de transferencia de archivos simple y cruzado, nunca tuve buenas experiencias. O el cliente o el servidor no funcionó bien (konqueror, internet explorer, zope 2, ...). Tan abstracto del protocolo y proporciona múltiples formas de acceder al archivo.

+0

+1 Supongo que webdav es más problemático de lo que imaginaba cuando comencé a buscar este tema. – Eduard

Cuestiones relacionadas