数据传输设备、方法及数据同步方法

文档序号:7899301阅读:190来源:国知局
专利名称:数据传输设备、方法及数据同步方法
技术领域
本发明涉及计算机技术领域,尤其涉及数据传输设备、方法及数据同步方法。
背景技术
分布式系统(distributed system)是建立在计算机网络上的软件系统,具有高度 的内聚性和透明性。随着分布式系统的广泛使用,系统之间的交互越来越复杂,集成的难度 也越来越大。现有的分布式系统中,各个系统如web(网站)系统、service(服务)系统、 hessian(轻量级远程工具)系统等,均使用不同的协议;系统在处理业务逻辑时,首先进 行协议的适配,然后由业务逻辑自己实现消息的转换,通常的消息内容为XML(Extensible Markup Language,可扩展标记语言),业务逻辑在处理前需要解析消息的内容,并转换为 POJO(Plain Ordinary Java Objects,简单Java对象)对象;然后由系统自行实现消息的 路由功能,通过网状结构实现各系统相互的路由。发明人在实施本发明的过程中发现,现有的系统主要存在以下缺陷1、协议不可插拔、开发难度大。由于各系统之间的协议适配需要在处理业务逻辑 之前进行处理,其造成业务处理效率较低;同时,协议不可插拔,当需要使用新的协议和外 部系统交互时,系统需要对接口进行修改和开发,其难度大;2、消息转换繁琐。由于消息格式不同,每次业务逻辑处理时需要实现多种消息格 式的转换,其操作繁琐;另外,消息格式依赖度高,当格式变化的时候还需要修改,步骤繁 琐;3、系统成本高。系统自己实现消息的路由功能,其需要系统之间的耦合性很高;由 于路由的实现通过复杂的网状结构,当路由策略发生变化时,各相关系统及交互结构都需 要修改,其成本较高,并且不利于系统的数据同步。

发明内容
针对现有技术的缺点,本发明的目的在于,提供数据传输设备、方法以及数据同步 的方法,能够简化消息的实时收发和异步数据的同步收发,并支持协议插拔和多种路由策 略,减小开发难度,降低系统成本。为了实现上述目的,本发明实施例提供了一种数据传输设备,包括消息转换模块,用于根据接收的参数信息,构造预配置的传输协议所支持的第一 消息,或将接收的第一消息转换为业务逻辑所支持的第二消息;路由模块,用于将所述消息转换模块构造的第一消息路由至消息出口以发送至对 端设备,或调用所述业务逻辑以响应所述消息转换模块转换的第二消息。相应地,本发明实施例还提供了一种数据传输方法,包括根据接收的参数信息,构造预配置的传输协议所支持的第一消息;根据所述接收的参数信息和预配置的路由信息,将所述第一消息路由至消息出口以发送至对端设备。相应地,本发明实施例还提供了一种数据传输方法,包括将接收的第一消息转换为业务逻辑所支持的第二消息;根据预配置的路由信息,调用所述业务逻辑以响应所述第二消息。 相应地,本发明实施例还提供了一种数据同步方法,包括根据接收的参数信息,构造预配置的传输协议所支持的第一消息;将所述第一消息的内容作为同步数据存储于数据库,并加载所述数据库内的所有 同步数据;根据预配置的路由信息,将所述加载的同步数据发送至对端设备,以同步所述对 端设备的数据。本发明通过将协议适配、消息转换、消息路由以及数据同步等功能进行封装整合, 形成了数据传输设备,能够支持各种协议的插拔以及支持各种路由策略;该数据传输设备 作为一个公共组件,既能够作为发送方进行消息的实时处理和发送,又可作为接收方进行 消息的实时处理接收;简化了消息的转换和实时收发,减少开发量以及降低开发难度 ’另 夕卜,无需对系统及交互结构进行修改或增设相应的功能,即可简化异步数据的同步收发,降 低了系统成本。


图1为本发明的数据传输设备的实施例的结构示意图;图2为本发明的同步模块的实施例的结构示意图;图3为本发明的数据传输方法的第一实施例的流程图;图4为本发明的数据传输方法的第二实施例的流程图;图5为本发明的数据同步方法的实施例的流程图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。请参见图1,为本发明的数据传输设备的实施例的结构示意图;如图1所示,所述 数据传输设备包括消息转换模块20和路由模块30。具体实现中,所述数据传输设备可作为公共组件,应用于发送端,接收端,客户端 和服务端。比如在数字电视接收系统中,所述数据传输设备可应用于服务器端,其作为消 息的发送者,通过所述传输设备为数字电视接收终端发送相应的消息,所述数字电视接收 终端包括但不限于机顶盒(Set Top Box,STB)、IPTV (Internet Protocol Television,网 络电视)、电视手机、数字电视一体机等具有接收数字电视功能的终端。再如所述数据传 输设备还可应用于数字电视接收终端,其作为消息的接收者,通过所述传输设备接收前端 服务器发送的消息,并调用相应的业务逻辑进行消息的响应。可以理解的是,此处数据传输 设备的应用仅为举例,其他应用情况可进行类似的分析,在此不进行赘述。
再请参见图1 所述消息转换模块20,用于根据接收的参数信息,构造预配置的传输协议所支持 的第一消息,或将接收的第一消息转换为业务逻辑所支持的第二消息;具体实现中,所述参数信息包括消息主体(Body)、消息入口地址和操作码。所述路由模块30,用于将所述消息转换模块20构造的第一消息路由至消息出口 以发送至对端设备,或调用所述业务逻辑以响应所述消息转换模块20转换的第二消息。进一步如图1所示,所述数据传输设备还包括预配置模块10,交互模块40和同 步模块50。所述预配置模块10,用于预先配置传输协议和路由信息;具体实现中,所述预配 置模块10主要用于实现各种协议的插拔,以及实现各种路由策略的制定。一般地,现有系 统交互的消息主要为XML消息,而业务逻辑所处理的消息格式为POJO对象的消息,因此,所 述预配置模块10会预先配置传输协议,比如,预先配置XML传输协议或POJO传输协议,以 使所述消息转换模块20根据预先配置的协议,实现XML和POJO对象的双向转换。可以理 解的是,此处的协议类型仅为举例,其他情况可进行类似分析,比如当需要使用新的协议 时,可直接进行新协议的预配置,即可在数据传输时使用新协议;再比如,当不需要某种协 议时,可在数据传输之前不进行预先配置,在此不进行赘述。所述预配置模块10实现了协 议的插拔和适配。另外,根据实际需要,或系统配置,所述预配置模块10预先制定各种路由 策略,为消息的传输提供路由信息,具体地,各种路由信息的预配置与现有利用各种路由策 略进行路由信息的制定过程相类似,在此不进行赘述。所述交互模块40,用于对外部提供消息交互的接口,包括接收外部所传入的参数 信息的消息接口,接收外部传入的第一消息的消息入口,向对端设备发送消息的消息出口, 以及调用业务逻辑进行消息响应的业务接口。具体实现中,所述交互模块40提供了各种消息交互的接口,其屏蔽了数据传输设 备内部对消息的处理(包括消息转换,消息路由以及协议适配等),对外呈现给用户的仅为 业务逻辑的处理,即用户只需调用数据传输设备的接口进行初始信息的传入,然后由数据 传输设备进行一系列处理后,返回给用户。具体地,用户在使用所述数据传输设备时,首先 需要通过API (ApplicationProgramming Interface,应用程序编程接口)调用所述交互模 块40的各种接口,来实现数据的传输。具体地,当所述数据传输设备应用于消息发送端时,用户通过API调用,调用所述 交互模块40的消息接口,具体如下//UserRequestBody和UserResponseBody继承数据传输设备提供的Body抽象类Body requestBody = new UserRequestBody();Body responseBody = new UserResponseBody();IMessageSender sender = new MessageSender();H调用接口方法发送消息,支持扩展的时候调用sendToSystemOReturnMessage message = sender. sendToAAA (requestBody,responseBody, 〃 AAA_Query_User“);通过上述程序,可调用所述交互模块40的发送消息接口,用户即可把消息主体部 分的P0J0对象、消息入口地址和操作码作为程序中的参数传入所述数据传输设备中。
具体地,当需要数据同步时的API调用如下Body requestBody = new UserRequestBody ();IMessageSync syncer = new MessageSync ();
String resultID = syncer. syncMessage(requestBody, “ AAA_Query_ User",” aaa. sync“);通过上述程序,可调用所述交互模块40的同步接口,用户即可把消息主体部分的 POJO对象、消息入口地址和操作码作为参数传入所述数据传输设备中。可以理解的是,上述的API调用仅为举例,其他情况比如当所述数据传输设备 应用于接收端时,或应用于同步数据的被请求方时,其API调用可类似的分析,在此不进行 赘述。所述同步模块50,用于将所述消息转换模块20构造的第一消息的内容作为同步 数据存储至数据库,并加载所述数据库内的所有同步数据;根据预配置的路由信息,通过所 述路由模块30将所述加载的同步数据发送至对端设备,以同步所述对端设备的数据。具体实现中,所述同步模块50还会返回同步标识给同步接口的调用方,该同步接 口调用方接收到该同步标识即认为数据同步已完成,另外,同步接口调用方还可根据同步 标识查看本次数据同步记录,包括从数据库查看本次同步的同步数据,以及对对端设备的 同步流程等。本发明通过将协议适配、消息转换、消息路由以及数据同步等功能进行封装整合, 形成了数据传输设备,能够支持各种协议的插拔以及支持各种路由策略;该数据传输设备 作为一个公共组件,既能够作为发送方进行消息的实时处理和发送,又可作为接收方进行 消息的实时处理接收;简化了消息的转换和实时收发,减少开发量以及降低开发难度 ’另 夕卜,无需对系统及交互结构进行修改或增设相应的功能,即可简化异步数据的同步收发,降 低了系统成本。为了更清楚的说明本发明,下面将对数据传输设备中的同步模块进行详细介绍。请参见图2,为本发明的同步模块的实施例的结构示意图;如图2所示,所述同步 模块50包括存储单元501,加载单元502和同步单元503。所述存储单元501,用于将所述消息转换模块20构造的第一消息的内容作为同步 数据存储至数据库;具体实现中,以预配置模块10预配置的传输协议为XML协议为例,所述消息转换 模块20,首先根据操作码构造XML消息的请求头,并根据交互模块40中所传入的消息主体 参数,将其主体的POJO对象转换为XML对象,结合请求头构造成XML请求消息;所述存储单 元501将所述XML消息的内容作为同步数据,存储于数据库中;所述加载单元502,用于加载所述数据库内的所有同步数据;具体实现中,所述加载单元502通过加载线程,负责将数据库中的所有同步数据 进行加载,具体地,其可以将加载的同步数据放到阻塞数据队列中。当然,也可以将同步数 据放到内存的其他数据队列中,利用队列的特性进行同步数据的存储。所述同步单元503,用于根据预配置的路由信息,通过所述路由模块30将所述加 载单元502加载的同步数据发送至对端设备,以同步所述对端设备的数据。具体实现中,所述同步单元503通过读取线程,从阻塞队列中读取数据,并通过发送线程池的发送线程进行数据发送,发送线程根据消息入口地址参数和预配置的路由信 息,由路由模块30将消息路由至消息出口发送至对端设备,以同步对端设备的数据。上述过程中,所述数据传输设备应用于数据同步客户端,其采用异步方式进行同 步数据的发送,简化了异步数据的同步发送。可以理解的是,当所述数据传输设备应用于数 据同步服务端时,其数据同步过程可作类似分析,在此不进行赘述。本发明无需对系统及交互结构进行修改或增设相应的功能,即可简化异步数据的同步收发,降低了系统成本。为了更清楚说明本发明,下面将对本发明的数据传输方法进行详细介绍。请参见图3,为本发明的数据传输方法的第一实施例的流程图;图3所示的实施例 为数据传输设备应用于发送端进行消息发送的实施例;如图3所示,所述方法包括S101,预先配置传输协议和路由信息;具体实现中,SlOl主要用于实现各种协议的插拔,以及实现各种路由策略的制定。 一般地,现有系统交互的消息主要为XML消息,而业务逻辑所处理的消息格式为POJO对象 的消息,因此,可预先配置传输协议,比如,预先配置XML传输协议或POJO传输协议,以实现 XML和POJO对象的双向转换。可以理解的是,此处的协议类型仅为举例,其他情况可进行类 似分析,比如当需要使用新的协议时,可直接进行新协议的预配置,即可在数据传输时使 用新协议;再比如,当不需要某种协议时,可在数据传输之前不进行预先配置,在此不进行 赘述。SlOl实现了协议的插拔和适配。另外,根据实际需要,或系统配置,可预先制定各种 路由策略,为消息的传输提供路由信息,具体地,各种路由信息的预配置与现有利用各种路 由策略进行路由信息的制定过程相类似,在此不进行赘述。S102,接收外部所传入的参数信息;具体实现中,外部(比如用户)可通过API调用的方法,将消息主体、消息入口地 址和操作码作为参数传入,S102即接收用户传入的上述的参数信息。S103,根据接收的参数信息,构造预配置的传输协议所支持的第一消息;具体实现中,根据操作码参数,构造XML的消息请求头,再根据消息主体参数,结 合消息请求头,构造XML的请求消息;S104,根据参数信息和预配置的路由信息,将第一消息路由至消息出口以发送至 对端设备。具体实现中,根据消息入口地址参数可进行API调用,将消息发送至消息入口,消 息入口根据预配置的路由信息,选择相应的消息出口,将消息转发至所述消息出口。本发明通过将协议适配、消息转换、消息路由以及数据同步等功能进行封装整合, 形成了数据传输设备,能够支持各种协议的插拔以及支持各种路由策略;该数据传输设备 作为一个公共组件,既能够作为发送方进行消息的实时处理和发送,又可作为接收方进行 消息的实时处理接收;简化了消息的转换和实时收发,减少开发量以及降低开发难度;另 夕卜,无需对系统及交互结构进行修改或增设相应的功能,即可简化异步数据的同步收发,降 低了系统成本。请参见图4,为本发明的数据传输方法的第二实施例的流程图;图4所示的实施例 为数据传输设备应用于接收端进行消息接收和响应的实施例;如图4所示,所述方法包括S201,通过消息入口接收外部的第一消息;
具体实现中,S201通过消息入口接收发送端所发送的第一消息,即XML请求消息;S202,将接收的第一消息转换为业务逻辑所支持的第二消息; 具体实现中,S202分别取出XML请求消息中的请求头和消息主体部分,将消息主 体部分的XML对象转换为POJO对象,使其成为业务逻辑所支持的第二消息,其第二消息包 括的消息主体为POJO对象;S203,根据预配置的路由信息,调用所述业务逻辑以响应所述第二消息;具体实现中,根据预配置的路由信息,此处的路由信息为根据各业务逻辑所制定 的业务路由。S203根据S202中所取出的请求头中所包含的操作码,以及预配置的业务路 由,通过业务接口的调用相应的业务逻辑来响应第二消息。本发明通过将协议适配、消息转换、消息路由以及数据同步等功能进行封装整合, 形成了数据传输设备,能够支持各种协议的插拔以及支持各种路由策略;该数据传输设备 作为一个公共组件,既能够作为发送方进行消息的实时处理和发送,又可作为接收方进行 消息的实时处理接收;简化了消息的转换和实时收发,减少开发量以及降低开发难度;另 夕卜,无需对系统及交互结构进行修改或增设相应的功能,即可简化异步数据的同步收发,降 低了系统成本。请参见图5,为本发明的数据同步方法的实施例的流程图;图5所示实施例为数据 传输设备应用于数据同步客户端的实施例;如图5所示,所述方法包括S301,预先配置传输协议和路由信息;具体实现中,S301主要用于实现各种协议的插拔,以及实现各种路由策略的制定。 一般地,现有系统交互的消息主要为XML消息,而业务逻辑所处理的消息格式为POJO对象 的消息,因此,可预先配置传输协议,比如,预先配置XML传输协议或POJO传输协议,以实现 XML和POJO对象的双向转换。可以理解的是,此处的协议类型仅为举例,其他情况可进行类 似分析,比如当需要使用新的协议时,可直接进行新协议的预配置,即可在数据传输时使 用新协议;再比如,当不需要某种协议时,可在数据传输之前不进行预先配置,在此不进行 赘述。S301实现了协议的插拔和适配。另外,根据实际需要,或系统配置,可预先制定各种 路由策略,为消息的传输提供路由信息,具体地,各种路由信息的预配置与现有利用各种路 由策略进行路由信息的制定过程相类似,在此不进行赘述。S302,接收外部传入的参数信息;具体实现中,外部(比如用户)可通过API调用的方法,调用数据传输设备的同 步接口,将消息主体、消息入口地址和操作码作为参数传入,S302即接收用户传入的上述的
参数信息。S303,根据接收的参数,构造预配置的传输协议所支持的第一消息;具体实现中,根据操作码参数,构造XML的消息请求头,再根据消息主体参数,结 合消息请求头,构造XML的请求消息;S304,将所述第一消息的内容作为同步数据存储于数据库;S305,返回同步标识给API接口调用方;具体实现中,由于外部(比如用户)通过API调用的方法,调用数据传输设备的 同步接口来实现数据的同步,当所述外部(比如用户)通过API调用同步接口传入相应参 数后,所述数据传输设备即返回同步标识给外部(比如用户),即API接口调用方,API接口调用方接收到该同步标识即认为数据同步已完成,另外,API接口调用方还可根据同步标 识查看本次数据同步记录,包括从数据库查看本次同步的同步数据,以及同步流程等。S306,加载所述数据库内的所有同步数据;
具体实现中,通过加载线程,将数据库中的所有同步数据进行加载,具体地,其可 以将加载的同步数据放到阻塞数据队列中。当然,也可以将同步数据放到内存的其他的数 据队列中,利用队列的特性进行同步数据的存储。S307,根据预配置的路由信息,将同步数据发送至对端设备,以同步所述对端设备 的数据。具体实现中,S307通过读取线程,从阻塞队列中读取数据,再通过发送线程池的发 送线程进行数据发送,发送线程根据消息入口地址参数和预配置的路由信息,由路由模块 30将消息路由消息出口发送给对端设备,以同步对端设备的数据。具体地,当数据传输设备应用于同步数据服务端进行同步数据接收并同步时,其 具体过程可参照数据传输设备应用于接收端以及数据同步客户端的流程,在此不进行赘 述。通过上述各实施例的描述,本发明通过将协议适配、消息转换、消息路由以及数据 同步等功能进行封装整合,形成了数据传输设备,能够支持各种协议的插拔以及支持各种 路由策略;该数据传输设备作为一个公共组件,既能够作为发送方进行消息的实时处理和 发送,又可作为接收方进行消息的实时处理接收;简化了消息的转换和实时收发,减少开发 量以及降低开发难度;另外,无需对系统及交互结构进行修改或增设相应的功能,即可简化 异步数据的同步收发,降低了系统成本。以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权 利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权 利要求所作的等同变化,仍属于发明所涵盖的范围。
权利要求
一种数据传输设备,其特征在于,包括消息转换模块,用于根据接收的参数信息,构造预配置的传输协议所支持的第一消息,或将接收的第一消息转换为业务逻辑所支持的第二消息;路由模块,用于将所述消息转换模块构造的第一消息路由至消息出口以发送至对端设备,或调用所述业务逻辑以响应所述消息转换模块转换的第二消息。
2.如权利要求1所述的设备,其特征在于,还包括 预配置模块,用于预先配置传输协议和路由信息。
3.如权利要求2所述的设备,其特征在于,还包括交互模块,用于对外部提供消息交互的接口,包括接收外部传入的参数信息的消息接 口,接收外部传入的第一消息的消息入口,向对端设备发送消息的消息出口,以及调用业务 逻辑进行消息响应的业务接口。
4.如权利要求3任一项所述的设备,其特征在于,还包括同步模块,用于将所述消息转换模块构造的第一消息的内容作为同步数据存储至数据 库,加载所述数据库内的所有同步数据;并根据预配置的路由信息,通过所述路由模块将所 述加载的同步数据发送至对端设备,以同步所述对端设备的数据。
5.如权利要求4所述的设备,其特征在于,所述同步模块包括存储单元,用于将所述消息转换模块构造的第一消息的内容作为同步数据存储至数据库;加载单元,用于加载所述数据库内的所有同步数据;同步单元,用于根据预配置的路由信息,通过所述路由模块将所述加载单元加载的同 步数据发送至对端设备,以同步所述对端设备的数据。
6.一种数据传输方法,其特征在于根据接收的参数信息,构造预配置的传输协议所支持的第一消息; 根据所述接收的参数信息和预配置的路由信息,将所述第一消息路由至消息出口以发 送至对端设备。
7.如权利要求6所述的方法,其特征在于,所述根据接收的参数信息,构造预配置的传 输协议所支持的第一消息之前,还包括接收外部传入的参数信息,所述参数信息包括消息主体、消息入口地址和操作码。
8.如权利要求7所述的方法,其特征在于,所述接收外部传入的参数信息之前,还包括预先配置传输协议和路由信息。
9.一种数据传输方法,其特征在于将接收的第一消息转换为业务逻辑所支持的第二消息; 根据预配置的路由信息,调用所述业务逻辑以响应所述第二消息。
10.如权利要求9所述的方法,其特征在于,所述将接收的第一消息转换为业务逻辑所 支持的第二消息之前,包括通过消息入口接收外部传入的第一消息。
11.一种数据同步方法,其特征在于根据接收的参数信息,构造预配置的传输协议所支持的第一消息;将所述第一消息的内容作为同步数据存储于数据库,并加载所述数据库内的所有同步数据;根据预配置的路由信息,将所述加载的同步数据发送至对端设备,以同步所述对端设备的数据。
12.如权利要求11所述的方法,其特征在于,根据接收的参数信息,构造预配置的传输 协议所支持的第一消息之前,还包括 预先配置传输协议和路由信息;接收外部传入的参数信息,所述参数信息包括消息主体、入口地址和操作码。
全文摘要
本发明公开了一种数据传输设备,包括消息转换模块,用于根据接收的参数信息,构造预配置的传输协议所支持的第一消息,或将接收的第一消息转换为业务逻辑所支持的第二消息;路由模块,用于将所述消息转换模块构造的第一消息路由至消息出口以发送至对端设备,或调用所述业务逻辑响应所述消息转换模块转换后的第二消息。相应地,本发明还公开了数据传输方法和数据同步方法。本发明能够简化消息的实时收发和异步数据的同步收发,并支持协议插拔和多种路由策略,减小开发难度,降低系统成本。
文档编号H04L29/08GK101854401SQ201019164030
公开日2010年10月6日 申请日期2010年2月1日 优先权日2010年2月1日
发明者蔡振兴 申请人:深圳市同洲电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1