当前位置: 技术问答>java相关
【讨论】一个WEB应用系统的设计问题
来源: 互联网 发布时间:2015-09-24
本文导语: 我们的系统有 BBS Webmail CRM等模块,为了方便维护和按照客户需求来销售模块,我们希望每一模块都能独立发布,所以想把各个模块封装为不同的WAR,另外再把为入口和共同部分封装到一个WAR里。这样系统发布后...
我们的系统有 BBS Webmail CRM等模块,为了方便维护和按照客户需求来销售模块,我们希望每一模块都能独立发布,所以想把各个模块封装为不同的WAR,另外再把为入口和共同部分封装到一个WAR里。这样系统发布后,就产生了多个WEB Application,多个WEB Application我想应该是不能直接共享Session的吧,所以,对于多个模块之间腰共享的对象,需要单独完成一个SessionManager.
请大家帮忙分析一下此方案的利弊和可行性,谢谢。
请大家帮忙分析一下此方案的利弊和可行性,谢谢。
|
分不能吃,不能喝,能帮帮别人是一种德
|
是一个很好的方案,各个模块可以随意剪裁。
--
另外再把为入口和共同部分封装到一个WAR里。
--
如果Session不可以共享,那你也可以在每个应用的入口处重新读取一次,因为你有一个公共的应用。
如果用户要求直接放在C:Inetpubwwwroot目录下呢?有没有考虑此时的配置会有一些麻烦(与直接放在webapp下相比)。
--
另外再把为入口和共同部分封装到一个WAR里。
--
如果Session不可以共享,那你也可以在每个应用的入口处重新读取一次,因为你有一个公共的应用。
如果用户要求直接放在C:Inetpubwwwroot目录下呢?有没有考虑此时的配置会有一些麻烦(与直接放在webapp下相比)。
|
在我们的系统中,无论是asp/java架构,bbs/cms/email/.. 都是独立的,原则上她们内部可能有自己的session共享,但是跨模块调用的时候都是显式调用另外一个模块的接口或者传参的。
因为你还有几个模块没说:用户系统等实际上属于系统更加底层的系统。比如邮件系统中pop3可能就有自己的“用户帐号”,也可以认为是一种用户系统,但是如果要把这些模块集成在一起,那么就应该有一个更加底层的用户系统。为了维护用户的登录会话,因此session manager也是一个底层的系统。我们把它称为平台的基础,把bbs/webmail这样的模块称为独立的功能模块。如果要单独购买email系统,我们可以仅仅给用户提供一个基本的email,也可以捆绑用户系统提供更强大的用户管理功能。然而,提供bbs产品,显然需要捆绑用户系统了。
如此一来,产品的裁减并不复杂。在具体的研发过程中我们曾经遇到的没有处理好的问题主要是有的用户希望多个功能模块使用独立的站点来做,有的用户喜欢和在一起作为一个完整的社区。这里面有些细节的地方没有处理好,至于配置、安装等等到简单了。
因为你还有几个模块没说:用户系统等实际上属于系统更加底层的系统。比如邮件系统中pop3可能就有自己的“用户帐号”,也可以认为是一种用户系统,但是如果要把这些模块集成在一起,那么就应该有一个更加底层的用户系统。为了维护用户的登录会话,因此session manager也是一个底层的系统。我们把它称为平台的基础,把bbs/webmail这样的模块称为独立的功能模块。如果要单独购买email系统,我们可以仅仅给用户提供一个基本的email,也可以捆绑用户系统提供更强大的用户管理功能。然而,提供bbs产品,显然需要捆绑用户系统了。
如此一来,产品的裁减并不复杂。在具体的研发过程中我们曾经遇到的没有处理好的问题主要是有的用户希望多个功能模块使用独立的站点来做,有的用户喜欢和在一起作为一个完整的社区。这里面有些细节的地方没有处理好,至于配置、安装等等到简单了。
|
SessionManager,很好,我看到一些应用实现了sessionManager,这样对用户管理起来更加安全。在一本介绍jsp的书里,有这样一个实现。
|
如果自己实现SessionManager,那么如果要做服务器集成怎么办,也自己做吗?
或许可以把需要的模块放在数据库里,这样只要改变数据,而程序都是一个。
或许可以把需要的模块放在数据库里,这样只要改变数据,而程序都是一个。
|
为什么要用WAR?而不用JAR呢?各个模块用不同的JAR,而WEB流程用一个WAR不更好吗?