技术开发 频道

选择应用程序架构

  数据库同步

  数据库同步技术实现数据库之间的数据交换,并确保保持所有数据库中数据的完整性。特别的是,在两个数据库失去连接时,同步技术能确保数据库的事务完整性,还能提供数据交换冲突的解决方案。

  数据库的同步架构定义了一种层次型或非层次型的关系。对于以层次型方式配置的数据库来说,每个数据库均有一个惟一的父数据库,只有主数据库(master database)或合并数据库(consolidated database)除外,这二者没有父数据库。每个数据库都与主数据库中的某个数据子集同步。在层次型配置方式中,对于任何两个直接共享数据的数据库来说,其中一个数据库总是在层次中处于另一个数据库的上面或下面(参见图2)。 


  图2.层次型与非层次型同步架构

  对于数据库是在上面还是下面,以层次型方式配置的数据库没有明确定义。非层次型模型主要用于实现故障恢复处理,而层次型配置更常见于应用程序的集成中。

  各种同步方法并不是同等的。架构师应该要知道,实现数据库同步的各种方式有很大区别,这将对架构的可伸缩性以及同步技术支持不同集成场景的的灵活性产生极大的影响。

  当两个或更多的关系数据库之间的数据子集需要在各个数据库之间实现持续复制时,就应该使用同步。

  寻找一种能完成如下任务的同步系统:

  ·支持多个数据库供应商,确保有较大的集成灵活性。

  ·直接与第三方数据库服务器同步。一些解决方案需要在服务器上安装中间数据库,这样开销会很大。

  · 如果同步过程需要穿越防火墙或者Web服务器,可以使用TCP/IP、HTTP和HTTPS协议来实现同步。如果要创建移动解决方案,那么就使用Palm HotSync和Microsoft ActiveSync。

  ·可以使用强加密(strong encryption)来加密同步数据。

  ·提供检测同步冲突的机制,并可以对解决方案进行编程。理想情况下,可以使用SQL、Java或者.NET语言来开发同步逻辑。

  ·允许通过表、行和列来构造数据子集,确保只有必要的数据才会在数据库之间复制。

  ·只针对数据的更改进行同步,将传输的数据量降低到最小。有些系统也允许对要同步哪些数据以及何时同步进行优化和控制。如果网络连接不是始终相同,那么这种方法就很有价值。例如,在移动应用程序中。

  ·能够通过不同的访问控制列表进行同步会话的验证,包括第三方系统,比如LDAP(轻量目录存取协议)。

  企业消息传递

  企业消息传递是一种模型,该模型使用消息通过数据异步交付来连接一组不同的IT系统。企业消息传递技术包括Java Message Service(JMS)、TIBCO、IBM的WebSphere MQ(MQSeries)和Microsoft MQ(MSMQ)。有了企业消息传递,人们通常将消息置于中心消息传递服务器的队列上或者远程系统的队列上,从而实现系统之间的信息传递。每个队列都有一个或多个应用程序来消费置于其中的消息。

  企业消息传递在许多方面都与数据同步不同。首先,该架构与层次型同步场景相比,结构化程度明显弱得多。很多不同的系统可以很轻松地与其他系统交换消息。该架构可以有一个中心服务器,它可以像集线器一样,将多个系统互连起来,或者系统可以直接与另一个系统对话(参见图3)。


  图3.企业消息传递提供无限制的配置

  其次,同步结束时,两个数据库的某一部分数据完全相同,但是对于企业消息传递来说,队列只接受消息。换言之,通过队列的通信一般是单向的。两个队列不会为了使其状态完全相同而互相复制消息。

  再次,队列通常不用于永久性存储数据;相反,它们用于临时存储,直到队列被某个系统消费(也可能被存储)。特定的应用程序消费特定队列中的消息。消费的数据是否存储,或者如何存储,架构中的其他系统都无从得知。

0
相关文章