选择应用程序架构
将软件应用集成到企业现有的IT环境的重要性和复杂性正逐步增长。企业的信息系统(IS)部门及向企业出售解决方案的应用程序供应商都面临着架构解决方案方面的艰巨任务,因为架构解决方案既要满足当前的需求,还要满足将来的需求。
数据库同步
数据库同步技术实现数据库之间的数据交换,并确保保持所有数据库中数据的完整性。特别的是,在两个数据库失去连接时,同步技术能确保数据库的事务完整性,还能提供数据交换冲突的解决方案。
数据库的同步架构定义了一种层次型或非层次型的关系。对于以层次型方式配置的数据库来说,每个数据库均有一个惟一的父数据库,只有主数据库(master database)或合并数据库(consolidated database)除外,这二者没有父数据库。每个数据库都与主数据库中的某个数据子集同步。在层次型配置方式中,对于任何两个直接共享数据的数据库来说,其中一个数据库总是在层次中处于另一个数据库的上面或下面(参见图2)。

图2.层次型与非层次型同步架构
对于数据库是在上面还是下面,以层次型方式配置的数据库没有明确定义。非层次型模型主要用于实现故障恢复处理,而层次型配置更常见于应用程序的集成中。
各种同步方法并不是同等的。架构师应该要知道,实现数据库同步的各种方式有很大区别,这将对架构的可伸缩性以及同步技术支持不同集成场景的的灵活性产生极大的影响。
当两个或更多的关系数据库之间的数据子集需要在各个数据库之间实现持续复制时,就应该使用同步。
寻找一种能完成如下任务的同步系统:
支持多个数据库供应商,确保有较大的集成灵活性。
直接与第三方数据库服务器同步。一些解决方案需要在服务器上安装中间数据库,这样开销会很大。
如果同步过程需要穿越防火墙或者Web服务器,可以使用TCP/IP、HTTP和HTTPS协议来实现同步。如果要创建移动解决方案,那么就使用Palm HotSync和Microsoft ActiveSync。
可以使用强加密(strong encryption)来加密同步数据。
提供检测同步冲突的机制,并可以对解决方案进行编程。理想情况下,可以使用SQL、Java或者.NET语言来开发同步逻辑。
允许通过表、行和列来构造数据子集,确保只有必要的数据才会在数据库之间复制。
只针对数据的更改进行同步,将传输的数据量降低到最小。有些系统也允许对要同步哪些数据以及何时同步进行优化和控制。如果网络连接不是始终相同,那么这种方法就很有价值。例如,在移动应用程序中。
能够通过不同的访问控制列表进行同步会话的验证,包括第三方系统,比如LDAP(轻量目录存取协议)。
- 本文关键词:

