SOA服务实施-协议转换和数据映射

对于SOA服务实施过程中的协议转换和数据映射,这篇文章只谈下在实际SOA实施过程中经常会出现的一些场景,而非再详细介绍标准ESB产品这部分的能力。

数据映射

对于数据映射,我们还是来看最常见的一些映射场景。

XML和Json格式之间的映射:这个是最常见的一种数据映射,特别是经常出现在SOAP Web Service和Rest接口之间的转换,对于SOAP是采用XML格式,对于Rest接口往往更多采用Json数据格式。因此,当SOAP和Rest进行转换的时候,还需要完成数据映射。对于Json格式虽然比较灵活松散,但是也很容易进行格式化和结构化处理,将其转变为完整的树结构。而XML结构本质也是一个完整的树结构,那么这两者之间的映射相对就简单了。

XML,JSON格式和数据库结果集之间的映射:我们把这作为第二类最常见的映射,往往出现在ESB数据库适配的场景中,对于DB数据库适配往往返回的都是一个RecordSet结果集。主要如果仅仅是单表之间的映射相对简单,即可以在RecordSet结果集上增加一个Root根节点,即表格化结果集转变为一个标准的树结构。如果SOAP服务对应的数据本身就是一个复合对象结构,比如采购订单,本身就是头,明细的两层对象结构,而对应到数据库的两个数据库表,因此就需要数据表首先根据主外键关联映射,在映射后再将数据集转变为一个完整的树结构。

XML,JSON格式和文本文件(Flat File)间的映射:如果是和平面文件相映射,那么要简单的通过配置或可视化的拖拉完成基本是不可能完成的,这种方式的实现主要有两种方法。第一种方式就是自己写映射组件代码,同时代码来实现数据映射处理;第二种方式就是采用Xpath脚本或XSLT模板来实现数据映射,但是对于比较复杂的场景第二种方法很难实现。

XML,JSON格式和Excel类文件之间的映射:对于Excel类文件本身也是类似数据库的结果集结构,同数据库映射方法相同。

协议转换和适配

Http SOAP => JMS : 发布的是Http SOAP Web Service消息,在ESB接收到该消息后将其转换为JMS消息。

Http SOAP =>Http Rest:发布的是Http SOAP Web Service消息,转换为Rest服务接口

Http SOAP =>TCP:发布的是Http SOAP Web Service消息,在ESB接收到该消息后将其转换为TCP消息

Http SOAP =>FTP:发布的是Http SOAP Web Service消息,在ESB接收到该消息后将其转换为FTP消息

Http Rest =》 JMS:发布的是Http Rest接口,在ESB接收到该消息后将其转换为JMS消息。

Http Rest =》 SOAP:发布的是Http Rest接口,在ESB接收到该消息后将其转换为SOAP消息。

Http Rest =>TCP:发布的是Http Rest接口,在ESB接收到该消息后将其转换为SOAP消息。

Http Rest =>FTP:发布的是Http Rest接口,在ESB接收到该消息后将其转换为FTP消息。

要注意,在ESB集成平台服务实施过程中,如果是企业内的服务集成,可以采用SOAP WebService,如果是轻量的服务网关或互联网能力开放平台模式,可以采用Http Rest接口模式。不管是哪种模式,对于ESB对外发布的服务目录,最好都是统一采用SOAP或Rest服务接口模式。而将JMS, TCP,FTP以及其它传统协议通过协议转换或适配后屏蔽在内部。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180119G0BOXH00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券