General Architecture of an Application based on a CMS
I have just started to work on a Java Based CMS and I am trying to figure out how would my application architecture look like.
To elaborate a bit, I have developed Java EE applications using Hibernate ans Spring and I am now used to thinking in terms of a
Presentation Layer --> Business Layer --> Database Access Layer --> Database
When I look at the CMS, I try to relate this to the Application Architecture of the conventional Web Based Application. I also try t开发者_StackOverflow社区o figure out where would Hibernate and Spring integrate into it or would this integration be supported?
In simpler terms, I am unable to perceive a General Architecture of an Application based on a CMS.
Have I made myself clear?
Any Help/Hints/Pointers?
I've never found an elegant solution to this; app builds I've done seem to sit better alongside rather than within CMS-managed content, using similar but copied HTML/JSP templates. Any presentation layer reuse you can get is a bonus!
One particular issue is version control of app source code and DB structure/data, which is obviously A Good Thing. Other site content may not sit within source control (SVN, etc) and you sure as hell don't want to take that risk with your app...
Having said all this, it's perhaps worth making a feature of such separation rather than apologising for it. Base your architecture around it prominently and design for a clean integration.
Here's an explanation of how you can integrate Spring and Hippo CMS (apache licensed Java CMS): http://www.gridshore.nl/2008/07/06/integrate-hippo-cms-into-a-spring-application/. The architecture of Hippo CMS is explained here: http://www.onehippo.org/about/architecture
Disclaimer: I work for Hippo and this is based on my own experience. There's a big chance there are more solutions out there than the one I'm describing.
you can see this, Magnolia CMS
Presentation Layer --> Business Layer --> Database Access Layer --> Database looks like a fairly reasonable layering to me. The question this immediately raises is why you have doubts about this. I'd tackle the problem from a different perspective (that usuall helps to shake the brain-cells into action!).
What kind of CMS are you building? In what way does it differ from the many other CMS's? Is there anything about your "unique selling point" that would influence the architecture to be non-standard in some way (if I can put it like that)?
精彩评论