webservice适配器的功能是否允许不同的webservice(例如,http / jms)可以互相调用?它是否像代理如soap / http webservice到soap / jms webservice?
图中有三个webservice,webservice-1和webservice-1由第三部分发布,adapter-A和adapter-B用于调用它们,webservice-3由adapter-c.first发布,当有人调用webservice-3,适配器-c拦截soap请求并将其发送到esb,esb有一个广播路由器,路由器将它发送到适配器-A&适配器-B,适配器-A&然后,适配器-B分析该消息并调用webservice-1& webservice-2.在该适配器-A& adapter-B向esb发送webservice响应,esb中也有一个聚合器,然后聚合器汇总这两个响应并将其发送到adapter-c,最后,adapter-c将最终结果发送给webservice-3用户!
我想如果这个流程可行?如果可行的话,如何设计适配器-A和适配器-B以及适配器-c?
答案 0 :(得分:0)
是的,这非常适合ESB。当您的适配器没有实现特殊的业务逻辑并且只负责“说出”Web服务所期望的协议时,您可以将服务直接连接到ESB。这种“协议虚拟化”基本上由各种ESB提供,即使像Axis2或CXF这样的普通Web服务堆栈也可以处理大量的传输协议。
关于业务逻辑,存在不同的可能性。对于简单的场景,您可以考虑使用像Apache Camel和链企业集成模块(EIP)[Hohpe等人]的EIP感知框架来实现所需的集成。对于更复杂的方案,您可以考虑使用BPEL(业务流程执行语言)。 BPEL是描述性并行编程语言,专注于以事务性,长期运行的方式编排Web服务。 BPEL可以执行,例如由Apache ODE。