2012-07-11 9 views
12

Dado que mucha gente usa repositorios de contenido. Debe haber una buena razón. Estoy construyendo una nueva aplicación web que necesitará almacenar contenido. ¿Alguien puede ayudarme a entender esto?¿Cuáles son las ventajas de los repositorios de contenido? (Sin hablar de los de CMS)

¿Cuáles son las ventajas de utilizar un repositorio de contenido como Apache Jackrabbit en lugar de escribir su propio código/API para almacenar imágenes o páginas de texto? Escribir el tuyo requiere tiempo, etc., pero también lo hace la implementación y el aprendizaje de un nuevo marco como la API del repositorio de contenido. Me parece que un beneficio para ti mismo es que conoces tu código y tienes experiencia inmediata si necesitas mejorarlo o solucionarlo. Usando otro marco, necesita aprender sus debilidades, y siempre es más fácil modificar el código que usted sabe que no sabe ... es decir, usted no conoce ese código de marco subyacente tan bien como el suyo.

Como dije, mucha gente los usa. Debe haber una razón. No puedo verlo como otro "todos los están usando así que nosotros también". Al menos espero que no sea eso. :)

Respuesta

8

Mis proyectos más recientes han involucrado ambas opciones: un almacén de datos personalizado (MySQL y archivos de imagen) con un mecanismo de almacenamiento en caché de niveles múltiples y un repositorio comercial basado en JCR. Algunas consideraciones:

En el corto plazo, una solución de bricolaje ofrece una complejidad reducida: solo tiene que crear y aprender lo que necesita. Y al menos existe la oportunidad de optimizar el almacén de datos para las necesidades de su aplicación en particular - más que probable velocidad de recuperación, pero posiblemente las preocupaciones sobre la huella de almacenamiento, la seguridad o la confiabilidad son las más importantes para usted.

Sin embargo, a largo plazo, está buscando un aumento significativo del trabajo para extender el sistema local a un nuevo tipo de contenido (video, por ejemplo) o para proporcionar nuevas funcionalidades (tal vez control de versiones).

Además, es difícil separar la elección de un enfoque de almacén de datos de la elección de las herramientas que los proveedores de contenido utilizarán para completar y mantener el almacén de datos. Tendrás que darles a los autores algo más que un formulario HTML con un área de texto y un botón de enviar a .

2

Esto está relacionado con las ventajas de standardization: compatibilidad e intercambiabilidad. Si todos escriben su propia biblioteca y API, no hay compatibilidad e intercambiabilidad, lo que lleva a un costo mayor.

13

Un repositorio JCR le permite almacenar todo su contenido (desde datos estructurados de tipo de base de datos hasta grandes archivos multimedia) en un solo lugar y con una única API, que es extremadamente conveniente y simplifica su código, evitando la falta de adecuación de impedancia entre archivos y datos que generalmente tiene en sistemas basados ​​en contenido.

JCR también proporciona una gran cantidad de funcionalidad de infraestructura que no tendrá que compilar o ensamblar usted mismo: búsqueda (incluido texto completo), observación (devolución de llamada cuando algo cambia) control de versiones, tipos de datos incluidos multinodo, nodos ordenados , etc ...

Si permite un enchufe desvergonzado, mi artículo "JCR - best of both worlds" en http://java.dzone.com/articles/java-content-repository-best describe esto con más detalle y también proporciona una lista de lectura para la especificación JCR, que debería permitirle obtener una buena visión general sin leer todo.

El artículo utiliza Apache Sling para sus ejemplos, que combinados con un repositorio JCR proporciona una plataforma muy agradable (IMO, pero como Sling committer soy parcial ;-) para aplicaciones basadas en contenido.

+0

Gracias por los comentarios, esto me da algo que ver después de estos primeros pasos. Sin embargo, agregarle un cabestrillo a tu ejemplo (de hecho, el gran énfasis en él ... comprensible en el artículo y en tu contexto) es demasiado para que yo pueda asimilarlo ahora. Regla del Telescopio de Thompson. Una vez que pueda descifrar java/glassfish y jcr, podré apreciar/entender lo que ofrece el cabestrillo. Pero necesito caminar antes de correr. :) En este momento solo quería saber racionalmente por qué debería molestarme en aprender jcr. David proporcionó el tipo de razonamiento estratégico que estaba buscando. Le daré una oportunidad a jcr. – BillR

+0

Aún le dio +1 sin embargo. :) – BillR

+0

Lo suficientemente justo: también puede detenerse antes de la mención de Sling en mi respuesta y ser feliz con JCR solo ;-) –

Cuestiones relacionadas