同步来自不同应用程序的数据实体

时间:2009-03-16 16:48:08

标签: database synchronization biztalk

我正在寻找一些关于我遇到的问题的最佳方法的反馈。有两个系统拥有自己的数据库,可存储非常相似的业务实体。

对于每个有问题的实体,都需要有一个同步机制,以确保在发生更改时将一个数据库中的更改传递给另一个数据库,并将更改转换为目标表结构。这种翻译意味着复制不是一种选择,但我不想开始编写定制的触发器或视图等以使它们保持同步。

这是BizTalk或类似产品在初始配置/映射过程后可以处理的内容吗?此外,Biztalk是否有可能过度杀伤,是否还有其他方法可以实现这一目标?

谢谢,

布赖恩。

4 个答案:

答案 0 :(得分:1)

这取决于要同步的“系统”(表?)的大小。

EAI是执行此操作的一般应用程序。连接两个无法相互作用的系统,有效地将一个业务对象映射到另一个业务对象,将地图转换为另一个业务对象。 但是这样的工具(例如webMethods for exemple)是不可思议的工具,如果你只需要从两个系统同步两个表,EAI显然会有点过分。

无论如何,这些原则可以帮到你。 EAI方法是拥有一个通用业务对象,该业务对象与您要同步的业务对象在两个系统中找到的所有属性相匹配。然后,您将需要某种映射来将每个特定于应用程序的业务对象转换为您的通用业务对象。您的对象不仅应描述业务数据,还应描述执行(创建,更新,删除数据)的操作。

然后你需要一个触发器(或两个如果你想同步两种方式)来检测何时发生变化,使用map将你的触发器获取的数据转换为通用对象(操作在另一端执行)

最后你需要一个“更新程序”来获取特定的业务对象并在数据库中执行正确的操作(插入/更新/删除)

EAI提供连接器以负责触发工作流程和更新数据库。您仍然需要根据所使用的EAI以某种特定方式定义一些映射。 EAI比同步两个表的juste强大得多。 Connnectors有各种类型,可以与各种系统(专有系统),各种数据库,简单格式(xml,文本)或特定协议(ftp,webservices等)进行交互。 EAI还确保最终有效地修改任何修改。

希望它有所帮助。

答案 1 :(得分:1)

Sql Server Integration Services可能是解决问题的可能性(可以连接到Sql Server的其他数据库和数据源)。 SSIS是所有Sql Server安装的一部分(Express除外)。

答案 2 :(得分:0)

瑞士公司Sowatec有一个名为“datariver”的漂亮工具(几年前我在那里工作过。虽然我没有参与这个产品;只是你知道)。它意味着将数据从源流到汇(就像河流一样)。

该网站使用德语,但其背后的人很乐意通过邮件用英语回答您的任何问题。

答案 3 :(得分:0)

BizTalk是并且将成为解决此类问题的理想解决方案。

BizTalk可以做什么? 1.定义代表公共业务实体的模式,这基本上是需要跨多个数据库表同步的所有字段。

  1. 定义通信流程(业务流程)和端点(Web服务),即哪个更新触发了哪些更改!

  2. 使用maps将公共业务实体映射到所需的特定数据元素 由数据库。请注意,biztalk具有内置适配器以加速开发过程。

  3. 必须在设计和系统上花费足够的时间,结果将非常棒。

  4. 出于开发目的,请参阅我的文章(谷歌关键字:Biztalk + Karamchetti)