webservice适配器的功能是让不同的webservice (例如http/jms)可以互相调用吗?它是否像一个代理,比如把soap/http webservice转换成soap/jms webservice?
图中有三个webservice,webservice-1和webservice-1由第三方发布,adaptor-A和adaptor-B用于调用它们,webservice-3由adaptor-c发布。首先,当有人调用webservice -3时,adaptor-c截获soap请求并将其发送给esb,esb有一个广播路由器,路由器将其发送给adaptor-A & adaptor-B,adaptor-A和adaptor-B,然后对消息进行分析并调用webservice-1&webservice-2,adaptor-A和adaptor-B向esb发送webservice响应,esb也有一个聚合器,然后聚合器将这两个响应组合在一起,并将其发送给adaptor-c,最后,adaptor-c将最终结果发送给webservice-3用户!
我想知道这个流程是否可行?如果可行,如何设计adaptor-A、adaptor-B和adaptor-c?
发布于 2011-10-29 03:21:44
是的,这是非常适合ESB的场景。如果您的适配器不实现特殊的业务逻辑,并且只负责“说出”Web服务所期望的协议,那么您可以将服务直接连接到ESB。这种“协议虚拟化”基本上是由所有类型的ESB提供的,即使是像Axis2或CXF这样的普通Web服务堆栈也可以处理大量的传输协议。
关于业务逻辑,有不同的可能性。对于简单的场景,您可以考虑使用支持EIP的框架,如Apache Camel和chain Enterprise integration Patters (EIP) Hohpe等,以实现所需的集成。对于更复杂的场景,可以考虑使用BPEL (业务流程执行语言)。BPEL是一种描述性并行编程语言,专注于以事务、长时间运行的方式编排Web服务。BPEL可以通过Apache ODE来执行。
https://stackoverflow.com/questions/7919345
复制相似问题