分布式方案求解.

banq大哥,及各位道友好。本人现在有一系统需要实现分布部署,希望各位能指点指点。具体情况如下:
系统是CS和BS共存的(CS是核心的,其是通过HTTP,application/xml方式通讯),其中客户端为windows桌面程
序,服务器为struct 1.1+Hibernate3.2 。由于之前系统性能及结构设计等诸多不合理,现对系统进行重构,其实也可以说是重新设计。 新的设计需要满足如下目标:
1:手头上有一些项目,需要不同省市的公司使用同一套系统,所以 需要考虑分布式部署的问题,按照我们的设想应该是每一个分公司部署一个web服务器和一个DB服务器。每个公司的客户端程序访问本公司的服务器(分公司大概在20个以下,每个公司客户端数量在1000-2000以内。)。
服务器中的数据分为两部分,一部分为私有的(大概是一些工作流数据),不需要同步。另一部分为系统的核心业务数据和组织架构信息,这部分需要共享同步。不需要实时同步,只需要1小时或半天同步一次就可以了。
可以不考虑负载均衡及高可用性问题。
在J道及其它论坛上,分布式,负载均衡相关的帖子都会提及到EJB,但由于我们目前系统已经采用
struts+hibernate的轻量级架构,加上开发人员学习成本,新架构的风险问题,不太可能使用EJB做新架构。基本
上会沿用传统的SSH架构。
我们目前的想法是采用数据库(MS SQL Server)的发布订阅功能,把需要共享的数据进行差异比较,然后合并,发布。数据表的主键冲突问题,我们的基本解决办法是:string类型的主键采用UUID生成策略。数值主键采用按区间自动增长的方式,保证不同的web应用不会产生相同的主键。因为没有真正实现,部署过,不知道这种方案的有没有什么可行性?
不知道banq大哥及各位道友有什么建议,方案,或有类似案例能与小弟分享一下?
[该贴被admin于2009-03-16 09:43修改过]

使用JMS做核心数据的同步,这是一套成熟模式,由高度的事务保证,不会失败,可以约定定时同步。

使用JMS做同步,那怎么样做数据合并? 因为核心数据不会只是在主服务器上做更新,从服务器也会有更新?banq大哥能否把JMS实现该方案的思路讲一下?另外使用哪家的JMS框架比较好?(^_^JMS不是太熟悉...)

如图,在客户端sender更新本地数据时,同时激活中心数据更新。具体你可多了解JMS 比较简单明了。




好的,我先看看JMS,等方案出来了,或是有问题再跟各位交流,请教。