0

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

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

系统 A 系统 B 系统 C .....

现在客户端通过 http ( ) 调用中介器上的几个方法http://foo/bar?id=1,这些方法应该被路由到某个配置的系统(可能是 xml 文件或类似的东西)

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

我想要一个灵活、简单、可扩展的解决方案,因为后端的系统并不总是使用相同的语言(一些 JMS,一些 FTP,...)。现在我阅读了上述产品,并想知道其中一些是否适合我的用例。我知道他们可以将消息发送/路由到其他系统,但我没有找到任何有关身份验证问题的示例(也可能是我没有进行足够的搜索;)。是否有任何系统无法做到这一点?或者我应该更深入地查看哪些文件以满足我的要求?

4

3 回答 3

1

Camel 绝对可以帮助您解决这个问题。Servicemix 也是如此,但它更像是一个容器来托管这些服务(通常用 Camel 编写)。Camel 绝对更简单,可以独立运行,嵌入应用服务器或 OSGI 容器等。

有关在 Camel 中使用 HTTP/Jetty 端点设置身份验证的更多信息,请参阅骆驼码头页面

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

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

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

Apache Camel 和其他 ESB 产品

于 2011-07-13T18:56:23.163 回答
0

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

于 2011-07-17T18:40:49.200 回答
0

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

于 2011-07-13T20:58:24.483 回答