目前碰到一个疑点,为求方案头痛。 
学院有很多个子系统,比如成绩查询、选课、教务管理、奖学金评定,这些系统都是各自独立的, 
数据不共享,但是某些数据却要保持一致,比如学生信息,每个系统都需要,并且信息会常变动, 
变动的时候各个系统应该保持一致,目前考虑到2个方案: 
1.采用sql server的数据库订阅/分发机制,在外网上做一个分发服务器,其他的子系统数据库服务器 
订阅,这个方案的优点是数据同不及时,缺点是不安全,并且维护麻烦,再就是多种类型的数据库不 
兼容。 
2.用程序来维护这个同步,在外网上写一个web Service,返回学生信息,各个子系统需要的时候调用 
那个service更新本地数据。优点是维护方便,各种数据库都兼容,比如有的子系统即使采用本地表或者 
access都没关系,缺点是更新不及时,需要手工或者定时更新。 
是否还有其他方案?

解决方案 »

  1.   

    可以考虑直接连接学生信息数据库服务器取需要的数据
    如果数据库会变动的话可以用Webservice封装
    数据可以实时获取,不必维护本地的副本,这样就免了数据不同步的烦恼。在一些性能要求比较高但学生信息不必一定要准确的情况比如成绩查询,可以维护一份本地的副本
      

  2.   

    竟然是SQL Server数据库,不如把端口打开,使不管是哪个系统,直接和SQL Server相连,这样数据一定是及时,同步的。
    但这有一个毛病,可能出现:当数据库服务器连接不上时,系统将不能运行。