有一套平台系统,在系统的中心模块有一台数据库服务器,存储系统的所有配置信息,在服务器上还有一套jsp/servlet写的web程序,对中心数据库进行配置。 同时,在系统的中心模块下,还有n个子模块,每个子模块也有一台数据库服务器,每个子模块的数据库服务器上也有一套web程序,对子模块的数据库进行配置。中心模块和子模块的web程序是采用的struts+ibatis框架,服务器用的Tomcat。(中心数据库和子模块数据的表格结构不一样)
   现在有一个新的要求:将中心模块和子模块的web程序整合到一起,也就是在同一个web程序中,既可以对中心数据库进行配置,也可以对子模块数据库进行配置;既可以对某一个子模块进行配置,也可以对多子模块进行同时配置。  
查询了很多分布式应用的介绍,如ejb,webservice等,但还是对分布式技术不甚了解,还有如下疑问:
请问要实现系统整合的要求,现有的系统经过较小的改造能达到这样的要求吗?是否“一定”要用到Ejb等分布式技术,Tomcat可以实现同时操作多个数据库吗?
为了同时操作多个数据库,如果必须需要改变构架,设计思路大概是什么样子,采用什么技术才是最合适的? 求高手指教!!不胜感激!

解决方案 »

  1.   

    将中心模块和子模块进行整合并不只是为了解决用户登录的问题,因为子模块有很多个,如果用户一个子模块一个子模块的操作会很麻烦,配置的数据都是一样的,所以需要整合,在一个web应用中,就可以对多个数据库同时操作
      

  2.   

    三种方法:1、最简单的,在Web界面上直接整合,比如使用frame或者iframe等简单技术,反正用户打开浏览器通过URL跳来跳去,才不关心到底是哪台服务器上的页面呢。2、一台服务器如果对数据库作了更改需要通知其它服务器,之间的交互可以使用RMI。3、同2,只不过改成使用JMS发消息。
      

  3.   

    1.比如现在需要设置10个数据库的数据,并且设置的内容都是一样的,我不可能让用户来回跳转,设置10次吧。。用户只要设置1次,10个数据库就都ok了
    2.采用RMI确实可以,但是如何保证事务?
    3.JMS的发送的信息并不一定实时的收到,所以事务就更不能保证了。。
      

  4.   

    直接在数据库上做同步。。用户操作更加麻烦,而且,那还要web程序做什么
      

  5.   

    其实说白了就两条路:1、直接在数据库上同步;2、程序控制同步1我不太清楚,但是我们这里有个数据库牛人这方面很熟悉,所以肯定是可以的;2的话就看你想自己实现或者用框架实现了,RMI、JMS只是通信协议而已,要保证事务肯定要写代码的;或者如果想用EJB框架的话,参考《Enterprise JavaBeans, 3.0》的“事务”一章