【发布时间】:2012-10-26 17:06:32
【问题描述】:
我们有一个遗留系统,该系统生成的文件每个都包含数百条消息(金融交易)。我们需要将这些消息转换成另一种格式,并将它们(单独)提交到目标系统。问题是: ESB 应该直接接受这些文件进行处理,还是应该在遗留系统和 ESB 之间存在一个适配器应用程序,将接收到的文件拆分为单独的消息,并让 ESB 单独处理消息(而不是处理整个文件)?
在第一个解决方案中,我们期望两个 ESB 流。第一个将文件转换为新格式,将其拆分为消息,并将这些消息存储到临时位置。转换需要将文件作为一个整体进行处理,因为该文件包含转换单个消息所需的一些公共部分。 第二个流程将获取单独的转换消息(每个都在一个单独的 DB 事务中),将它们传递给目标系统,然后等待它的响应(同步或异步)。
第二种解决方案将用一个外部应用程序替换第一个流,该应用程序将转换文件,将其拆分为单独的转换消息,并将它们存储在临时位置(本地文件系统)。第二个流将保留在 ESB 中。
在我们看来,第一个解决方案的缺点是 ESB 必须处理大文件(在第一个流程中),这通常被认为是一种反模式。另一方面,ESB会直接适应遗留系统的接口,这也是ESB的目的之一。
在第二种解决方案中,适配器应用程序将包含转换逻辑,这应该是 ESB 的另一个目的和职责。
对于这种情况(一种模式),通常建议的解决方案是什么?您能否提供一些比我找到的这两个链接更具描述性的参考资料?
https://www.ibm.com/developerworks/wikis/display/esbpatterns/File+Processing
编辑 另一个参考: http://www.ibm.com/developerworks/webservices/library/ws-largemessaging/
【问题讨论】:
标签: integration esb integration-patterns