You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jackrabbit.apache.org by Wolf Benz <eu...@gmail.com> on 2006/11/30 22:28:05 UTC
Beginner's question (architecture)
Hi List,
I'm new to this JCR concept, but I'm very thrilled from what I read/
saw so far.
My prob is: I'd like to get started with it on teh right foot
immediately - but I don't know too well how exactly - architecture wise.
1/ Problem sketch: I guess it's the same for most people beginnen
with a JCR: they came from ORM and now what? :-)
It seems to be a bad idea to directly map the Content (persistence
end) with the fron-end. (correct me if you think otherwise)
-> I woudl think more of an architecture like e.g:
@ backend: a "PersistenceDelegaterInterface" (PDI) & a
"PersistenceDelgator" (PD)
With methods like:
getObject(Class, String ID)
saveOrUpdate(Object obj)
A domain layer object could use thsi PDI.
It seems to have these advantages:
- the domain- and service layer can have a PDI instance, which can be
injected with Spring at runtime
- different strategies can be used for persistence; it becomes
pluggeable (e.g. part of your app could run with JDO2; Spring can
inject the same PDI with a JDO2 implememtation for the classes for
which a JCR is not YET in place)
- it decouples back-end from front-end
Of course the reason I also ask, is as the apps I currently have, do
already have this PDI.
But... there are new apps in the pipeline. Is this the best way to
continue or is there a more elegant approach?
I could perhaps also perhaps the question as: Every app has its
domain layer. How to -most elegantly- connect these domain objects
with a JCR?
(the "class" arg seems o have become obsolete for JCRs as the ID
containes both path and class/ID; all is in the XPath....)
So infact these are 2 questions already: how to do it best for new
apps and what about migrating old apps?
2/ Regarding existing apps: suppose you have an existing DB (schema
and content in place) How best build a system on that? Is it e.g.
possible to use a mapping file to logically (e.g.) unite 2 DBs and
place one, much more logical, new structure above it? (kinda like the
JDO/Hibernate mapping file if you wish)
Or is this seeking for trouble and is it in this case better to
- have JCR generate the most logical structure for it, and
- then have a DBA make a few views or so?
Ideas are very much appreciated!
Wolf
RE: Beginner's question (architecture)
Posted by "Ottinger, Joseph" <jo...@techtarget.com>.
Wolf, might I suggest an article on TheServerSide by Alexandru Popescu,
"JCR: A Practitioner's Perspective?"
http://www.theserverside.com/tt/articles/article.tss?l=JCRPract
-----Original Message-----
From: Wolf Benz [mailto:eurojava@gmail.com]
Sent: Thursday, November 30, 2006 4:28 PM
To: users@jackrabbit.apache.org
Subject: Beginner's question (architecture)
Hi List,
I'm new to this JCR concept, but I'm very thrilled from what I read/ saw
so far.
My prob is: I'd like to get started with it on teh right foot
immediately - but I don't know too well how exactly - architecture wise.
1/ Problem sketch: I guess it's the same for most people beginnen with a
JCR: they came from ORM and now what? :-) It seems to be a bad idea to
directly map the Content (persistence
end) with the fron-end. (correct me if you think otherwise)
-> I woudl think more of an architecture like e.g:
@ backend: a "PersistenceDelegaterInterface" (PDI) & a
"PersistenceDelgator" (PD)
With methods like:
getObject(Class, String ID)
saveOrUpdate(Object obj)
A domain layer object could use thsi PDI.
It seems to have these advantages:
- the domain- and service layer can have a PDI instance, which can be
injected with Spring at runtime
- different strategies can be used for persistence; it becomes
pluggeable (e.g. part of your app could run with JDO2; Spring can inject
the same PDI with a JDO2 implememtation for the classes for which a JCR
is not YET in place)
- it decouples back-end from front-end
Of course the reason I also ask, is as the apps I currently have, do
already have this PDI.
But... there are new apps in the pipeline. Is this the best way to
continue or is there a more elegant approach?
I could perhaps also perhaps the question as: Every app has its domain
layer. How to -most elegantly- connect these domain objects with a JCR?
(the "class" arg seems o have become obsolete for JCRs as the ID
containes both path and class/ID; all is in the XPath....)
So infact these are 2 questions already: how to do it best for new apps
and what about migrating old apps?
2/ Regarding existing apps: suppose you have an existing DB (schema and
content in place) How best build a system on that? Is it e.g.
possible to use a mapping file to logically (e.g.) unite 2 DBs and place
one, much more logical, new structure above it? (kinda like the
JDO/Hibernate mapping file if you wish) Or is this seeking for trouble
and is it in this case better to
- have JCR generate the most logical structure for it, and
- then have a DBA make a few views or so?
Ideas are very much appreciated!
Wolf