简体   繁体   English

基于CMS的应用程序的通用体系结构

[英]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. 我刚刚开始研究基于Java的CMS,我试图弄清楚我的应用程序架构将如何。

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 为了详细说明,我使用Hibernate和Spring开发了Java EE应用程序,现在我习惯于用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. 当我查看CMS时,我尝试将其与传统的基于Web的应用程序的应用程序架构相关联。 I also try to figure out where would Hibernate and Spring integrate into it or would this integration be supported? 我还试图找出Hibernate和Spring在哪里集成或者是否支持这种集成?

In simpler terms, I am unable to perceive a General Architecture of an Application based on a CMS. 简单来说,我无法感知基于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. 应用程序构建我已经做得更好而不是 CMS管理的内容中,使用类似但复制的HTML / JSP模板。 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... 其他网站内容可能不在源代码控制(SVN等)内,你肯定不想冒你的应用程序冒险...

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/ . 以下是如何集成Spring和Hippo CMS(apache许可的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 这里解释了Hippo CMS的架构: http//www.onehippo.org/about/architecture

Disclaimer: I work for Hippo and this is based on my own experience. 免责声明:我为Hippo工作,这是基于我自己的经验。 There's a big chance there are more solutions out there than the one I'm describing. 那里有更多的解决方案,而不是我所描述的解决方案。

你可以看到这个, 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? 你在建什么类型的CMS? In what way does it differ from the many other CMS's? 它与许多其他CMS有何不同? 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)? 有什么关于你的“独特卖点”会影响架构在某种程度上是非标准的(如果我可以这样说)?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM