P. 1
JCR or RDBMS: why, when, how?

JCR or RDBMS: why, when, how?

4.93

|Views: 11,987|Likes:
Published by day-software
This paper compares java content repositories (JCR) and relational database management systems (RDBMS). The choice between these technologies is often made arbitrarily. The aim is to clarify why this choice should be discussed, when one technology should be selected instead of an other and how the selected technology should be used. Four levels (Data model, Specification, Project, Product) are analyzed to show the impact of this choice on different scopes. Follow a discussion on the best choice depending on the context. This defines the foundations of a decision framework.
This paper compares java content repositories (JCR) and relational database management systems (RDBMS). The choice between these technologies is often made arbitrarily. The aim is to clarify why this choice should be discussed, when one technology should be selected instead of an other and how the selected technology should be used. Four levels (Data model, Specification, Project, Product) are analyzed to show the impact of this choice on different scopes. Follow a discussion on the best choice depending on the context. This defines the foundations of a decision framework.

More info:

Published by: day-software on Jan 23, 2009
Copyright:Attribution

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF or read online from Scribd
See more
See less

04/23/2014

pdf

The construction phase of a development process is
highly influenced by efficiency. Coding requires time,
resources and money. These parameters are very
sensitive. Furthermore, if developers have to write
code twice, there is a high probability that they will
make more than double the programming errors.
Thus, efficiency also impacts quality.

University of Lausanne & Day Software AG
JCR or RDBMS 33

Measuring coding efficiency implies some soft

parameters. The programmer’s education and

knowledge should be taken into account.
Furthermore, the semantic and the readability of the
code are also significant. These parameters make it

difficult to judge the technology’s efficiency. Without

going too deep into these questions, the following
sections contain useful information which can be
taken into consideration when making a decision in
this area.

JCR development

Programmers are not really familiar with the JCR

API and don’t really know the best practice linked to

content repositories. However, the API is in large
part self-explanatory and people generally have the
habit of thinking in terms of hierarchies. These
parameters should give to JCR a good learning
curve.

Some interactions are possible between the query
part of the API and it’s navigational part. One of the
big advantages of JCR is stated in the fact that
these aspects are merged coherently and are not
considered as different abstraction levels.

The code quantity highly relates to the use case. If
complex joining operations are mainly required, JCR
will not be an efficient choice. However, if navigation
is required, the size of the code will be much
smaller. If special requirements such as versioning
or fine grained access control are needed, it
becomes clearly difficult to reach the same level as
the one proposed by JCR.

Relational development

Nearly all programmers are familiar with the
relational model and people have often used it in
recent years. Thus, SQL and API as JDBC are part
of the common language. In real world situations,
this general knowledge often favors the relational
model. Some problems need to be treated in a
specific manner and the intuitive approach often
gives bad results.

If complex operations are required by the use case,
the relational model should not be bypassed. The
completeness of the queries and the panel of
operations made it very efficient in term of code

quantity. However, if the use case implies
requirements such as navigation or versioning, the
developer will have to add some artifacts into his
implementation model to manage parameters such
as tree structure or order. He will also face the
problem of having to implement huge applicative

logic. Thus, in terms of efficiency, the model’s choice

should be driven by an honest analysis of the use
case’s properties.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->