我可以使用 Mule、Apache Camel、ServiceMix 或其他 ESB 来解决我的问题吗?
我必须有一种中介/路由系统,它应该与后端的多个系统进行通信。它将如下所示:
Client
|
|
--Mediator-
| | |
| | |
Sys A Sys B SysC .....
现在客户端通过 http (http://foo/bar?id=1
) 调用中介器上的多个方法,这些方法应该路由到某个地方配置的系统(可能是 xml 文件或类似的东西)
现在我还要求系统和一些方法应该能够处理身份验证,这样就会有一个 http://foo/登录
并且中介者应该返回一个令牌,该令牌可以用于后续调用,例如 http://foo/secretbar
。如果未提供令牌,则调用应返回特定错误。
我想要灵活、简单、可扩展的解决方案,因为后端系统并不总是使用相同的语言(一些 JMS、一些 FTP,...)。现在我了解了上述产品,并想知道其中一些是否适合我的用例。我知道他们可以向其他系统发送/路由消息,但我没有找到任何有关身份验证问题的示例(也可能是我搜索得不够;)。是否存在不具备此能力的系统?或者我应该更深入地研究哪些文件来满足我的要求?
I have to have a kind of mediator/routing system that should talk to several systems in the backend. It will look like this:
Client
|
|
--Mediator-
| | |
| | |
Sys A Sys B SysC .....
Now the client calls several methods on the mediator via http (http://foo/bar?id=1
) and these should be routed to a system configured somewhere (probably xml-file or sth similar)
Now i also have a requirement that the system and some methods should be capable of handling authentication, so that there will be a http://foo/login
and the mediator should return a token which can used on subsequent calls like http://foo/secretbar
. If the token is not provided the calls should return a specific error.
I want to have flexible,easy, extendable solution since the systems in the backend don't always speak the same language (some JMS, some FTP,...). Now I read about the above products and want to know if some of them fit for my use case. I know that they can speak/route messages to other systems but I didn't find any example for the authentication problem (could also be that I didn't search enough ;). Are there any systems which are not capable of this? Or into which documents should i look deeper for my requirements?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
发布评论
评论(3)
Camel 提供了camel-http 和camel-jetty,但是你配置它们的方式受到限制。
看来您需要某种会话来处理您的身份验证,编写您自己的 servlet 并将请求从 servlet 内部转发给camel 会更保守。
但您也可以使用camel-jetty会话支持并访问会话来处理处理器内的身份验证:
更多信息请参见: cammel-jetty
Mule 肯定可以满足您的所有需求,甚至更多。首先,您可以通过 XML Spring 轻松更改 Mule 的路由。其次,Mule 开箱即用,带有一个大号。传输,包括 ActiveMQ、FTP 和 HTTP/s。第三,借助 Mule 的 Jersey 和 CXF 模块,操作可以作为 RESTful 服务或 Web 服务向您的客户端公开。最后但并非最不重要的一点是,Mule 允许您通过单例对象 XML 元素对所有客户端请求使用相同的对象。该元素将帮助您满足身份验证需求,因为它可用于在客户端会话期间存储客户端的安全令牌。巧合的是,我们最近开发了一款 Mule 演示应用程序,它与您的用例非常相似。我们计划公开代码,但与此同时,您可以在 http://androidmulecrm 找到此应用程序的更多信息.muleion.com/。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
骆驼绝对可以帮助你解决这个问题。 Servicemix 也是如此,但它更多的是一个托管这些服务的容器(通常用 Camel 编写)。 Camel 绝对更简单,可以独立运行,嵌入应用服务器或 OSGI 容器等。
请参阅 camel -jetty 页面有关在 Camel 中使用 HTTP/Jetty 端点设置身份验证的更多信息,
请参阅 骆驼EIP 页面可帮助实现复杂的路由需求等企业集成模式的完整列表。
请参阅 Camel 组件页面,获取 Camel 已实现的组件的完整列表,这些组件允许您与各种技术((jms、文件、http、jdbc、ftp 等)进行交互。
另外,请参阅此讨论以获取更多信息比较不同的产品一般...
Apache Camel 和其他 ESB 产品
Camel can definitely help you out with this. Servicemix as well, but its more of a container to host these services (generally written in Camel). Camel is definitely simpler and can be run standalone, embedded in an app server or OSGI container, etc.
see the camel-jetty page for more information about setting up authentication with an HTTP/Jetty endpoint in Camel
see the Camel EIPs page for a complete list of enterprise integration patterns that can help implement complex routing requirements, etc.
see the Camel Components page for a complete list of components that Camel has implemented to allow you to interface with various technologies ((jms, file, http, jdbc, ftp, etc).
Also, see this discussion for more information on comparing the different products in general...
Apache Camel and other ESB products