M S*_*ach 0 java esb apache-camel spring-integration enterprise-integration
我的应用程序需要作为中间件(MW)工作,它从各个客户获得订单(以XML的形式),其中包含--------------优先级1供应商ID,其中客户可以发送XML到这些组件之一
1)JMS queue
2)File system
3)HTTP
4)Web service request(rest/soap)
Run Code Online (Sandbox Code Playgroud)
该MW将首先验证传入请求并将确认发送给通过其首选信道请求订单的客户.传入的XML中存在通道和客户端点信息.
一旦获得订单,它需要通过xml形式的优先通道向不同的供应商发送订单请求.我的数据库中有供应商及其首选渠道信息.
所以它是企业集成的用例.
我计划使用核心Java技术来做到这一点.这是我计划的方法.
将为每种类型的传入请求(JMS队列,文件系统,HTTP,Web服务请求(休息/肥皂))提供四个侦听器/条目端点.这些监听器将把xml字符串放在jms队列中.这将作为接待员工作,并使过程异步.
现在我将拥有将在队列中监听的jms使用者.(消费者可以在同一系统上或根据生产者机器上的负载而与生产者不同).此使用者将xml字符串解析为java对象.执行验证.将确认发送给客户(确认需要根据客户的喜好发送.我将使用确认处理器工厂,它将根据喜好发送确认).验证完成后,将此pojo转换为另一种pojo格式,以便xstream/jaxb进一步将其编组为xml格式,并在其首选通道上发送给供应商(供应商首选项存储在db中),如通过soap,jms,文件请求等.
有些我遇到过这个CAMEL链接http://java.dzone.com/articles/open-source-integration-apache,看起来它提供了完美的解决方案,发现这是企业集成的用例.
专家请建议Camel为此提供正确的解决方案.或者像Spring集成的其他一些企业集成框架,ESB在这种情况下会更加有用.如果有人能指出ESB解决这种用例的资源.这真的很有帮助.
由于时间限制,我无法探索所有解决方案,因此寻找专家建议,以便集中精力于一个.
像Camel这样的东西完全适合这项任务.
像Camel这样的东西提供了工具集和组件,可以将描述者的工作流程拼接在一起更容易,但需要注意的是,首先必须学习整个工具(例如Camel,在本例中).
对于熟练的,经验丰富的开发人员和简单的用例,您可以看到他们可能采取您正在采取的方法.使用手头的工具配置工作流程,可能包括自定义代码,而不是花时间学习新工具.
回想一下,虽然工具可以带来很大的好处(功能,测试,质量,文档),但它们也带来了负担(支持,资源,复杂性).将工具集引入您的环境的一个关键方面是,虽然您可能没有编写代码,但您仍然要对其在您的环境中的行为负最终责任.
所有这一切,你需要确定合并像Camel这样的工具的时间投入是否值得你当前项目的好处.可能的情况是,如果您打算继续并在未来进行更多集成,那么投资这样的工具将是一个好主意,因为该工具将使这些集成更容易.
但要注意像Camel这样非常灵活的东西也会带来它固有的复杂性.但对于像你所说的那样简单的东西,我觉得它很合适.
| 归档时间: |
|
| 查看次数: |
334 次 |
| 最近记录: |