SOA / ESB中的数据库集成方式?

时间:2008-10-08 09:53:54

标签: database integration soa esb

情况:某些银行拥有旧的传统ABS(自动银行系统)。

银行希望:

  1. 通知旧旧CRM系统客户的帐户更改(发布操作)。
  2. 检查客户端卡的PIN码(请求/响应操作) - 同步模式。
  3. ABS使用StoredProcedures调用在非常古老的私有技术中实现。所以,我只能通过数据库连接到这个系统。

    您知道Java / .Net(ESB)应用程序与旧/旧数据库系统集成的哪种方式?

    撰写/发布操作

    任何供应商的数据库服务器:

    1. 扫描表格以查找新条目 - 速度太低。
    2. 触发(如果它们受支持)处理SQL更新并将事件信息插入和写入某个表。应用程序监听器应检查此表以查找事件。
    3. Oracle serevr:PL / SQL TRIGGERS + Oracle AQ。和JMS的听众。
    4. 阅读操作

      1. 只需将结果写入ABS表格 - 危险。

      2. ...

      3. 如何在同步模式下通知旧数据库系统有关响应的信息???如何在同步模式下实现写/读???

        再次,您知道Java / .Net(ESB)应用程序与旧/旧数据库系统的哪些方式集成?

3 个答案:

答案 0 :(得分:2)

许多供应商都在大肆宣传DataServices。我认为这些产品的最大价值在于集成不同的数据源。

我会考虑制作一个简单的“应用程序”,将此数据公开为服务

答案 1 :(得分:1)

这取决于很多因素;特别是数据库的读/写吞吐量和性能敏感性。

数据库往往是一种敏感的东西,并且当它们被精心调整以用于特定系统中的生产时,对于来自任意其他系统的通用访问通常非常脆弱;因此,人们经常将数据库复制到另一个只读的从数据库,然后可以用它来进行集成工作。查询等等。

然后,您可以根据需要使用触发器/轮询/ JMS,而不会影响原始数据库。

取决于所使用的数据库复制技术;然后,您可以经常在副本数据库中安装触发器(可以不时地从主服务器中稍微落后) - 以最大限度地减少对生产数据库的影响

答案 2 :(得分:0)

我可以建议您在银行中使用Mule作为ESB(另请参阅http://www.mulesource.org/display/MULE/Home)。

它允许您直接与数据库进行通信(jdbc级别必须与存储过程以及表/视图级别一致)。我对集成核心银行系统(数据库级别,Oracle)与独立应用程序(Web服务级别)的积极经验。

坦率地说,我没有得到你所有的问题(如果你愿意,你可以用俄语直接问我),但IMO Mule是你的方式 - 它可以消耗JMS,JDBC,文件级别和许多其他人并处理同步和asyncornouse事件(另见http://www.mulesource.org/display/MULE2USER/Available+Transports)。

Reagrds。

P.S。为了让英语听众更清楚,我可以建议你使用更多的标准术语核心银行系统而不是ABS(在xUSSR国家也是如此)。