有一个外部网络服务(基于REST),提供物流服务。为了从我们的应用程序(即java堆栈)中使用它,我创建了一个客户端库(使用jersey和jackson,它是一个独立的jar文件,并提供简单的getter和setter来使用)。使用此REST服务所需的只是此jar文件(用作可重用资产)。
然而,我们的一位客户问道,“既然我们已经有了ESB(来自IBM的中间件)用于我们现有的集成,为什么我们也不能通过ESB进行这种集成?”
感谢。
答案 0 :(得分:0)
Is it possible to consume the REST based service using a middleware such as ESB(or MQ) ? If so, how ? -
是。每个ESB都有其语法/ API。如果您已经在使用REST / http请求,那么应该不难理解。注意,MQ是一个允许异步通信的消息代理。例如,想要使用REST服务的应用程序可以向代理发送消息,而不是等待来自外部服务的响应。消息代理反过来可以将REST与外部服务对话。消息代理可能会公开REST接口以使用消息。但这一切都取决于用例。您可能希望同步调用REST服务。
大多数ESB支持调用外部Web服务REST / SOAP。所以ESB并不一定意味着MQ。
Will it be wise to do it ?
这取决于。许多组织将ESB / Gateway设置为策略并路由/过滤/管理所有外部路由。还要管理负载,HA等。
What arguments can I posit to my client to tell them this may not work ?
它肯定会起作用。您应该根据您的要求评估使用ESB是否是一种开销。