摘要:提供方提供SOAP接口,在接入适配后转换为Rest接口服务发布,同时在发布的时候同时支持Xml和Json两种消息格式。核心还是三者应该具备相互转换的能力,但是在我们最近的ESB服务总线设计和服务接入发布上,在输入可以适配各种协议,包括FTP和DB数据库等,但是对于最终接入服务后的发布,最终只发布SOAP WS服务接口或者是Rest服务接口。

对于协议转换和数据映射,实际是ESB服务总线进行服务设计和编排的时候应该具备的能力,最近在谈SOA管控平台的功能增强和优化改进,因此就结合管控平台功能来一起说明。

协议转换和适配

在这里重点还是谈SOAP,Rest和JMS三者之间的协议转换,有些内容在前面的文章也都谈到过,在这里会在重复说明下。核心还是三者应该具备相互转换的能力,但是在我们最近的ESB服务总线设计和服务接入发布上,在输入可以适配各种协议,包括FTP和DB数据库等,但是对于最终接入服务后的发布,最终只发布SOAP WS服务接口或者是Rest服务接口。

即对于任何的服务接入适配,适配完成后发布的发布都可以选择是发布为SOAP接口还是Rest接口服务。

SOAP和Rest接口服务互相转换

提供方提供SOAP接口,在接入适配后转换为Rest接口服务发布,同时在发布的时候同时支持Xml和Json两种消息格式。如果提供Rest接口,在接入后也可以发布为SOAP接口服务,消息格式只能为Xml格式。

JMS协议转换适配

对于JMS消息适配接入,在接入后可以选择发布为SOAP接口还是Rest接口服务。如果发布为Rest接口服务,同样在消息格式上可以同时支持Xml和Json两种消息格式。即消费方调用WS服务接口分发数据,ESB在获取数据后将数据写入到JMS消息管道。

数据映射和XSLT模板设计

对于数据映射,在当前我们谈API服务网关或轻量的SOA服务总线产品的时候都不会再谈数据映射,因为数据映射一般实现起来比较复杂,往往需要通过ESB设计器进行,或者自己手工写映射代码或映射模板才能够实现。当ESB服务总线和另外的总线产品对接的时候,往往最容易发现两边各自有一套接口规范的场景,在这种场景下往往就需要对不同的接口规范进行数据映射和转换操作。

对于数据映射而言,包括了XML,Json和平面文件等多种消息格式之间的数据映射。而在前期实际上只考虑XML和Json两种消息格式之间的映射就可以了。

那么对于XML和Json之间又有三种映射需要处理,即XML和XML之间进行数据映射,XML和Json之间进行数据映射,Json和Json文件之间进行数据映射。而这种数据映射,最佳的实现方式还是不要去做类似ESB设计器那种复杂的数据映射,而是可以我们自己编写好类似XSLT的映射模板,然后将模板上传上去,根据XSLT模板来进行映射操作。

相关文章