You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "Hendrik Beck (camunda)" <he...@camunda.com> on 2007/06/20 12:48:14 UTC

Proposal Master thesis about JCR in JEE environments

Hi all!

>From July till January I am going to write my Master thesis at Darmstadt
University of Applied Sciences. I want to work on JCR in JEE environments. 

So far we (meaning me and my company) only used JCR some kind of separated
from our JEE-based applications. We really only used it for additional
content that was displayed in our web applications but they were never
really "connected" to our business data. My thesis should now deal with the
question how to integrate JEE persistence (e.g. EJB3 persistence) and JCR.
Ok, let me try to explain it a little bit: 

Basically I would speak out the assumption, that 

1) persistence in a normal JEE application works very well the way it does
(OR mapping, including Tool support, many years of experience, documentation
and best-practices, design approaches etc.) and can't really be replaced by
JCR completely, but

2) for "content" data (however these two could formally be distinguished)
JCR is the better choice and delivers and lot of advantages out-of-the-box

3) and at last: a "normal" JEE application consists of both kinds of data,
so real Java business data as well as content data (e.g. if I have a
Business Entity "Product", then things like product images or textual
descriptions would definitively be content rather than business data).

Ok, given that, the question arises, if it's possible to integrate both
kinds of persistence mechanisms on the persistence layer of a JEE
application and bring them together in a way that data from both sources is
transparently available on the business layer. And furthermore, would the
application benefit from the advantages of both, how would it affect the
development process of the application, what problems arise, how is the
runtime behavior and something like that.
 
One vision at the end of this integration is: I have my platform independent
model, tag some of my attributes as "content" and at the end I have this
mixed persistence done for me via framework or code generation and I can
write my business logic without taking care of the persistence (that's how
it should be, right?).

Mmh, that's the basic idea. During the thesis it could also cover some kind
of general comparison between OR mapping and JCR for persistence. That's
also a question that was discussed sometimes in the mailing list.

Of course a lot of problems have to be solved on the way. Some of them would
IMO be:

- Are there differences in CRUD behavior of both, i.e. can they really be
integrated that well?

- How to make associations across both data storages? Of course I will need
that to be able to put data together again. In what ways can I solve that?

- How to distinguish both kinds of data, business data and content data?
Will that be the choice of the developer made by experience or can I develop
a formal method to do that?

- How about NodeTypes? Interesting question from the JCR point of view I
think. Would it be possible to define a set of standard (mixin) node types
or at least a set of guidelines to transform Java Beans into node types?

- And some more...

Having followed the mailing list for some time I would say that this kind of
integration is something that is more and more required in JEE projects.
Also, by now there should be some best-practices that could be taken into
account during the work. Also, jcr-mapping goes a little into that direction
so that would most likely make sense to use it.



So, before I write too much, what would you think about the basic idea? As I
haven't done this yet in a real project: am I about right? Does it fit to
real world requirements? Is that "mixed" persistence approach something that
would make sense? 

Comments or feedback would be highly appreciated.


Thanks in advance and best regards
Hendrik Beck



---------------------------------------------
camunda GmbH - The Business Process Company
Mühlwehrstraße 43 - 97980 Bad Mergentheim
www.camunda.com - info@camunda.com
---------------------------------------------
Hendrik Beck
Entwickler
Telefon +49 7931 99190-400
hendrik.beck@camunda.com
---------------------------------------------
Amtsgericht Ulm: HRB 680804
Geschäftsführer: Bernd Rücker, Oliver Fischer
---------------------------------------------