1

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

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

这是 BizTalk 或类似产品在初始配置/映射过程后可以处理的事情吗?另外,Biztalk 是否可能会矫枉过正,我是否可以使用其他方法来实现这一目标?

谢谢,

布赖恩。

4

4 回答 4

1

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

EAI 是执行此操作的通用应用程序。连接两个无法交互的系统,有效地将一个业务对象映射到另一个业务对象,使用映射将一个业务对象转换为另一个业务对象。但是这样的工具(例如 webMethods )是企业工具,如果你只需要从两个系统同步两个表,EAI 显然是矫枉过正的。

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

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

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

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

希望能帮助到你。

于 2009-03-16T17:23:12.967 回答
1

Sql Server 集成服务可能是解决问题的一个廉价候选者(可以连接到 Sql Server 的其他数据库和数据源)。SSIS 是所有 Sql Server 安装的一部分(Express 除外)。

于 2009-03-21T21:08:07.253 回答
0

BizTalk is and would be an ideal solution for this kind of problem.

What BizTalk can do? 1. Define a schema which represents a common business entity, this is essentially all the fields which need to be in sync across several database tables.

  1. Define the flow of communication (Orchestrations) and end-points(web services), i.e. which update triggers what changes!

  2. Use maps to map the common business entity into specific data elements required by the databases. Note that biztalk has built-in adapters to speed up the development process.

  3. Adequate time must be spent in design and of this system the results would be fabulous.

For development purposes refer my articles (google keywords: Biztalk + Karamchetti)

于 2009-03-24T17:54:34.167 回答
0

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

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

于 2009-03-16T16:57:52.730 回答