Groups cq-google [day-communique] Integrate CQ5 with data from another system
cq-google discussions - subscribe and participate
[day-communique] Integrate CQ5 with data from another system
17 messages    expand all | collapse all

hi michael,

thanks a lot for your post.

>> generally, i see the content repository as a system that exposes both
>> the relational model and a hierarchical model.
>> see here [1].
> On reviewing section 8.5 of JSR-170, it appears that there is no
> support for aggregation, no support for updates, insertions or
> deletions, no support for outer joins, and support for inner joins is
> optional (except where it's required to support mixin semantics, where
> it's not really a join at all)
> This is very far removed from what I understand as the relational
> model.
i completely agree that jcr 1.0 (aka jsr-170) does not mandate a broad
set of functionality in the query section, mostly because the vendors
involved in the expert group were not comfortable with making a broader
set of functionality mandatory.

given the fact that the industry has evolved quite a bit in the meantime
i would probably take jsr-283 as a reference to look at what can be mandated
these days from a specification perspective. on a side note jsr-283 will hit
proposed final draft in a couple of days, but you will already find an updated
query section that includes joins in the public review draft [1].

i think it is also important that the functionality exposed by a vendor or a
product (in your case crx) is not limited by the specification at all and the
specification provides a very clear path for vendors on how to expose
functionality beyond what the specification requires.

i think one really has to separate the "relational model" from the
expressiveness and features in an implementation. i definitely agree
that one needs proper joining capabilities to make practical use of
the relational aspects of a content repository, but i would argue that
inserts and updates would not really be needed given that there are
other means to easily update a result set or insert new date.

> Also how do you reconcile your "data first" (start with everything as
> nt:unstructured) design advice with the view that the repository
> exposes a "relational model"?
i would say that my interpretation of the "data first" approach primarily
leverages residual properties and child nodes, nt:unstructured is just the
ootb example and manifestation of that comes in very handy when
starting, and gets people started the right way.

if one wants to have different "tables" to use something like
a join, then i having a "marker" nodetype to facilitate the handling
is definitely an option.


>> given my personal experience, i really have not run into a situation
>> where i would personally prefer to use a bare rdbms as my backing
>> store.
> Is it your position that the aspects of the relational model not
> exposed by JCR-170 are unnecessary for a content repository, or just
> simply unnecessary as a general matter of application design?
i think particularly joins are very necessary for applications.
it was just impractical in the time frame of jsr-170 to mandate it
in the specification. so consider jsr-170 as a baseline that a broad
expert group was able to agree upon but not what i personally think
the functionality of a content repository should be.
of course our implementations generally exceed what jsr-170
mandates in various different respects, without violating any of
the contracts imposed by the specification.

>> > For 3, what are the criteria and design principles to use for
>> > separating concerns?
>> assuming that a hybrid solution would be driven by practicalities
>> i would assuming that the separation of concern would also
>> be driven by practicalities... right?
>> maybe i misunderstand the question.
> Given your clear design guidelines for a hierarchical content-centric
> application design[1], I was hoping you might have similar insights or
> guidance on how to integrate hierarchical content-centric application
> design with relational data-centric application design.
i think it is a very good idea to determine certain very clear decision criteria
on how to mix/separate a traditional java database backed application
with cq5. i don't think that this exists in the form a ready to use "recipe",
but i would definitely be interested in using something as specific as
your particular use case to derive some guiding principles from.
a lot of our integration partners and customers have mixed relational
database applications with cq, of which most were driven by an existing
legacy application. obviously an existing legacy app makes the decision
process a lot simpler...

i am definitely interested in continuing this conversation in whatever
form or shape and would like to thank you for all the valuable contributions.

regards,
david

[1] http://jcp.org/aboutJava/communityprocess/pr/jsr283/

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Day Communique" group.
To post to this group, send email to day-communique@googlegroups.com
To unsubscribe from this group, send email to day-communique+unsubscribe@googlegroups.com
For more options, visit this group at http://groups.google.com/group/day-communique?hl=en
-~----------~----~----~----~------~----~------~--~---

« back to discussions | PermaLink