What are Advantages to Content Repositories (not talking about CMS's)
Asked Answered
E

3

11

Given that a lot of people use content repositories. There must be a good reason. I'm building out a new web application that will need to store content. Can someone help me understanding this?

What are the advantages to using a content repository like Apache Jackrabbit as opposed to writing your own code/API to store images or text pages? Writing your own requires time etc. but so too does implementing and learning a new framework like the content repository API. A benefit to rolling your own seems to me that you know your code and have immediate expertise if you need to enhance or fix it. Using another framework you need to learn its foibles, and it is always easier to modify code you know that don't know... i.e. you don't know that underlying framework code as well as your own.

As I said a lot of people use them. There must be a reason. I can't see it as being just another "everyone is using them so, so should we." At least I hope it isn't that. :)

Extirpate answered 11/7, 2012 at 18:41 Comment(0)
S
7

My most recent projects have involved both choices: a custom-built data store (MySQL and image files) wtih a multi-level caching mechanism, and a JCR-based commercial repository. A few thoughts:

In the short run, a DIY solution offers reduced complexity: you only have to build and learn what you need. And there is at least the opportunity to optimize the data store for your particular application's needs -- more than likely speed of retrieval, but possibly storage footprint, security, or reliability concerns are foremost for you.

However, in the long run, you're looking at a significant increment of work to extend the home-grown system to a new content type (video, e.g.) or to provide new functionality (maybe, versioning).

Also, it's difficult to separate the choice of a data store approach from the choice of tools that content providers will use to populate and maintain the data store. You'll have to give your authors something more than an HTML form with a textarea and a submit button.

Shenika answered 12/7, 2012 at 17:59 Comment(0)
E
12

A JCR repository allows you to store all your content (from structured database-type data to large multimedia files) in a single place and with a single API, which is extremely convenient and makes your code simpler, avoiding the impedance mismatch between files and data that you usually have in content-based systems.

JCR also provides a lot of infrastructure functionality that you won't have to build or assemble yourself: search (including full-text), observation (callbacks when something changes) versioning, data types including multi-value, ordered nodes, etc...

If you allow a shameless plug, my "JCR - best of both worlds" article at http://java.dzone.com/articles/java-content-repository-best describes this in more detail and also provides a reading list for the JCR spec, that should allow you go get a good overview without reading the whole thing.

The article uses Apache Sling for its examples, which combined with a JCR repository provides a very nice (IMO, but as a Sling committer I'm biased ;-) platform for content-based applications.

Estremadura answered 12/7, 2012 at 14:41 Comment(2)
Thanks for the feedback, this gives me something to look at after these first steps. However, the addition of sling to your example (in fact the heavy emphasis on it... understandable in the article's and your context) is too much for me to assimilate right now. Thompson's Telescope Rule. Once I can figure out java/glassfish and jcr I might be able to appreciate/understand what sling is offering. But I need to walk before running. :) Right now I just wanted rational as to why I should bother to learn jcr. David provided the kind of strategic reasoning I was looking for. I'll give jcr a go.Extirpate
Fair enough - you can also stop before the mention of Sling in my answer and be happy with JCR alone ;-)Estremadura
S
7

My most recent projects have involved both choices: a custom-built data store (MySQL and image files) wtih a multi-level caching mechanism, and a JCR-based commercial repository. A few thoughts:

In the short run, a DIY solution offers reduced complexity: you only have to build and learn what you need. And there is at least the opportunity to optimize the data store for your particular application's needs -- more than likely speed of retrieval, but possibly storage footprint, security, or reliability concerns are foremost for you.

However, in the long run, you're looking at a significant increment of work to extend the home-grown system to a new content type (video, e.g.) or to provide new functionality (maybe, versioning).

Also, it's difficult to separate the choice of a data store approach from the choice of tools that content providers will use to populate and maintain the data store. You'll have to give your authors something more than an HTML form with a textarea and a submit button.

Shenika answered 12/7, 2012 at 17:59 Comment(0)
O
2

This is related to the advantages of standardization: compatibility and interchangeability. If everybody writes his own library and API, there is no compatibility and interchangeability, leading to higher cost.

Oligochaete answered 12/7, 2012 at 4:52 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.