【发布时间】:2014-05-21 12:28:14
【问题描述】:
我的应用程序需要作为中间件(MW)工作,它从各种客户那里获得订单(以 XML 形式),其中包含 --------------优先级 1 客户可以将 XML 发送到这些组件之一的供应商 ID
1)JMS queue
2)File system
3)HTTP
4)Web service request(rest/soap)
此 MW 将首先验证传入的请求并将确认发送给请求订单的客户 通过他们的首选渠道。传入的 XML 中存在渠道和客户端点信息。
一旦它得到订单,它需要通过他们的首选渠道以xml的形式向不同的供应商发送订单请求。 我的数据库中有供应商及其首选渠道信息。
所以它是一个企业集成用例。
我打算使用核心 Java 技术来实现它。这是我计划的方法。
将为每种类型的传入请求(JMS 队列、文件系统、HTTP、Web 服务请求(rest/soap))提供四个侦听器/入口端点。 这些侦听器会将 xml 字符串放入 jms 队列中。这将作为接待员工作并使流程异步。
现在我将拥有 jms 消费者,它将在队列上侦听。(消费者可以在同一系统上或与生产者不同,具体取决于负载 生产机器)。这个消费者会将 xml 字符串解析为 java 对象。执行验证。将确认发送至 客户(需要根据客户偏好发送确认。我将使用确认处理器工厂,它将发送 基于偏好的确认)。验证完成后,将此 pojo 转换为另一种 pojo 格式,以便进一步使用 xstream/jaxb 将其编组为 xml 格式并通过soap、jms、文件请求等在他们的首选渠道上发送给供应商(供应商偏好存储在数据库中)。
我遇到了这个 CAMEL 链接http://java.dzone.com/articles/open-source-integration-apache,看起来它提供了完美的解决方案 发现这是企业集成用例。
请专家建议 Camel 是解决此问题的正确方法。或其他一些企业集成框架,如 Spring 集成、ESB 在这种情况下会更有益。如果有人可以指出 ESB 解决这种用例的资源。真的很有帮助。
由于时间限制,我无法探索所有解决方案,因此寻求专家建议以便专注于一个。
【问题讨论】:
标签: java apache-camel esb spring-integration enterprise-integration