我可以使用Mule,Apache Camel,ServiceMix或其他ESB来解决我的问题吗?

时间:2011-07-13 17:02:08

标签: apache-camel mule esb apache-servicemix jboss-esb

我必须有一种中介/路由系统,它应该与后端的几个系统通信。它看起来像这样:

    Client 
      |
      |
 --Mediator-  
 |   |     |
 |   |     |

Sys A Sys B SysC .....

现在客户端通过http(http://foo/bar?id=1)调解介体上的几个方法,这些方法应该被路由到某个地方配置的系统(可能是xml-file或者类似的)

现在我还要求系统和一些方法应该能够处理身份验证,这样就会有一个http://foo/login,并且中介应该返回一个令牌,该令牌可以用于后续调用,如{{1 }}。如果未提供令牌,则调用应返回特定错误。

我希望拥有灵活,易用,可扩展的解决方案,因为后端的系统并不总是使用相同的语言(某些JMS,某些FTP,......)。现在我读了上面的产品,想知道它们中的一些是否适合我的用例。我知道他们可以说消息/路由消息到其他系统,但我没有找到任何验证问题的例子(也可能是我没有足够的搜索;)。有没有能够做到这一点的系统?或者我应该更深入地了解哪些文件?

3 个答案:

答案 0 :(得分:1)

Camel绝对可以帮助你解决这个问题。 Servicemix也是如此,但它更多的是容纳这些服务的容器(通常用Camel编写)。 Camel绝对更简单,可以独立运行,嵌入在应用服务器或OSGI容器等中。

有关在Camel中使用HTTP / Jetty端点设置身份验证的详细信息,请参阅camel-jetty页面

请参阅Camel EIPs页面,获取有助于实现复杂路由要求的企业集成模式的完整列表等。

请参阅Camel Components页面以获取Camel已实现的组件的完整列表,以允许您与各种技术((jms,file,http,jdbc,ftp等)进行交互。

另外,请参阅此讨论,了解有关比较不同产品的更多信息......

Apache Camel and other ESB products

答案 1 :(得分:0)

Camel提供camel-http和camel-jetty,但你可以配置它们的方式有限。 看起来你需要某种会话来处理你的身份验证,编写自己的servlet并将请求从servlet内部传递给camel会更加保守。 但您也可以使用camel-jetty会话支持并访问会话以处理处理器内的身份验证: 更多信息:cammel-jetty

答案 2 :(得分:0)

骡子当然可以提供您所要求的所有内容以及更多内容。首先,您可以通过XML Spring轻松更改Mule的路由。其次,骡子开箱即用的大号没有。传输,包括ActiveMQ,FTP和HTTP / s。第三,由于Mule的Jersey和CXF模块,操作可以作为RESTful服务或Web服务向您的客户公开。最后但同样重要的是,Mule允许您通过singleton-object XML元素为所有客户端请求使用相同的对象。此元素可以帮助您满足身份验证需求,因为它可用于在客户端会话期间存储客户端的安全令牌。巧合的是,we最近开发了一个与您的用例非常相似的Mule演示应用程序。我们计划公开代码,但与此同时,您可以在http://androidmulecrm.muleion.com/找到此应用的更多信息。