CN106850451A - 一种数据传输方法、装置及系统 - Google Patents
一种数据传输方法、装置及系统 Download PDFInfo
- Publication number
- CN106850451A CN106850451A CN201710076546.9A CN201710076546A CN106850451A CN 106850451 A CN106850451 A CN 106850451A CN 201710076546 A CN201710076546 A CN 201710076546A CN 106850451 A CN106850451 A CN 106850451A
- Authority
- CN
- China
- Prior art keywords
- data
- transmitted
- message
- slicer
- advance
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Communication Control (AREA)
Abstract
本发明提供了一种数据传输方法、装置及系统,该数据传输方法包括:根据预先设定的切片长度对获取的待传输数据进行切片处理,形成至少一个数据切片,将每一个数据切片与预先设定的消息头进行组合,形成对应的消息体,以消息队列的方式将各个消息体传输给外部的数据接收机构。通过上述过程可知,本方案将待传输数据处理为至少一个消息体,然后将待传输数据以各个消息体的形式传输给数据接收机构,由于消息体中的数据切片长度可以根据业务要求灵活设定,因此本方案可以降低数据传输失败的概率。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种数据传输方法、装置及系统。
背景技术
随着互联网技术的普及,互联网中各个机构间的数据传输越来越频繁。
目前,互联网中各个机构间数据传输的方法通常为:发送机构直接将整体的待传输数据传输给接收机构。
但是,在数据传输过程中可能会出现接收机构的内存存储空间小于待传输数据的数据量大小的情况,以导致待传输数据不能传输到接收机构。因此,通过现有的数据传输方式进行数据传输时,数据传输失败的概率较高。
发明内容
本发明提供了一种数据传输方法、装置及系统,可以降低数据传输失败的概率。
第一方面,本发明提供了一种数据传输方法,该方法包括:
获取待传输数据;
根据预先设定的切片长度对所述待传输数据进行切片处理,形成至少一个数据切片;
将每一个所述数据切片与预先设定的消息头进行组合,形成对应的消息体;
以消息队列的方式将各个所述消息体传输给外部的数据接收机构。
优选地,
在所述根据预先设定的切片长度对所述待传输数据进行切片处理之前,进一步包括:
将所述待传输数据转换为可扩展标记语言XML格式的待传输数据。
优选地,
在所述根据预先设定的切片长度对所述待传输数据进行切片处理之前,进一步包括:
通过预先设定的加密算法对所述待传输数据进行加密。
优选地,
在所述将每一个所述数据切片与预先设定的消息头进行组合之前,进一步包括:
确定所述待传输数据的第一消息摘要算法第五版MD5值;
确定每一个所述数据切片的第二MD5值;
根据每一个所述数据切片的第二MD5值,确定各个所述数据切片组合体的第三MD5值;
判断所述第一MD5值是否与所述第三MD5值相同,如果是,执行所述将每一个所述数据切片与预先设定的消息头进行组合。
优选地,
所述将每一个所述数据切片与预先设定的消息头进行组合形成对应的消息体,包括:
针对于任意一个所述数据切片,判断该数据切片是否为包括所述待传输数据结尾;
如果是,将该数据切片与预先设定的第一消息头进行组合,形成对应的消息体,其中所述第一消息头中包括数据尾标识符;
如果否,将该数据切片与预先设定的第二消息头进行组合,形成对应的消息体,其中所述第二消息头中包括非数据尾标识符。
第二方面,本发明提供了一种数据传输装置,该装置包括:
获取单元,用于获取待传输数据;
切片单元,用于根据预先设定的切片长度对所述待传输数据进行切片处理,形成至少一个数据切片;
组合单元,用于将每一个所述数据切片与预先设定的消息头进行组合,形成对应的消息体;
传输单元,用于以消息队列的方式将各个所述消息体传输给外部的数据接收机构。
优选地,进一步包括:转换单元;
所述转换单元,用于将所述待传输数据转换为可扩展标记语言XML格式的待传输数据。
优选地,进一步包括:加密单元;
所述加密单元,用于通过预先设定的加密算法对所述待传输数据进行加密。
优选地,进一步包括:第一确定单元、第二确定单元、第三确定单元及判断单元;
所述第一确定单元,用于确定所述待传输数据的第一MD5值;
所述第二确定单元,用于确定每一个所述数据切片的第二MD5值;
所述第三确定单元,用于根据每一个所述数据切片的第二MD5值,确定各个所述数据切片组合体的第三MD5值;
所述判断单元,用于判断所述第一确定单元确定的第一MD5值是否与所述第三确定单元确定的第三MD5值相同,如果是,触发所述组合单元执行所述将每一个所述数据切片与预先设定的消息头进行组合。
优选地,
所述组合单元,用于针对于任意一个所述数据切片,判断该数据切片是否为包括所述待传输数据结尾;如果是,将该数据切片与预先设定的第一消息头进行组合,形成对应的消息体,其中所述第一消息头中包括数据尾标识符;如果否,将该数据切片与预先设定的第二消息头进行组合,形成对应的消息体,其中所述第二消息头中包括非数据尾标识符。
第三方面,本发明提供了一种数据传输系统,该系统包括:数据接收机构以及如权利要求5至8任一所述的数据传输装置;其中,
所述数据接收机构,用于接收所述数据传输装置传输的各个消息体。
优选地,
所述数据接收机构,进一步用于针对于接收的每一个所述消息体,判断该消息体是否包括所述第一消息头,其中,所述第一消息头中包括数据尾标识符;如果是,将接收到的各个消息体进行组合,还原待传输数据;如果否,继续接收所述数据传输装置传输的消息体。
本发明提供了一种数据传输方法、装置及系统,该数据传输方法包括:根据预先设定的切片长度对获取的待传输数据进行切片处理,形成至少一个数据切片,将每一个数据切片与预先设定的消息头进行组合,形成对应的消息体,以消息队列的方式将各个消息体传输给外部的数据接收机构。通过上述过程可知,本方案将待传输数据处理为至少一个消息体,然后将待传输数据以各个消息体的形式传输给数据接收机构,由于消息体中的数据切片长度可以根据业务要求灵活设定,因此本方案可以降低数据传输失败的概率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的一种数据传输方法的流程图;
图2是本发明另一个实施例提供的一种数据传输方法的流程图;
图3是本发明一个实施例提供的一种数据传输装置所在设备的一种硬件结构图;
图4是本发明一个实施例提供的一种数据传输装置的结构示意图;
图5是本发明一个实施例提供的一种包括转换单元的数据传输装置的结构示意图;
图6是本发明一个实施例提供的一种包括加密单元的数据传输装置的结构示意图;
图7是本发明另一个实施例提供的一种数据传输装置的结构示意图;
图8是本发明一个实施例提供的一种数据传输系统的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明的目的、技术方案和优点更加清楚,下面结合附图及具体实施例对本发明作进一步地详细描述。
如图1所示,本发明实施例提供了一种数据传输方法,该方法可以包括以下步骤:
步骤101:获取待传输数据;
步骤102:根据预先设定的切片长度对所述待传输数据进行切片处理,形成至少一个数据切片;
步骤103:将每一个所述数据切片与预先设定的消息头进行组合,形成对应的消息体;
步骤104:以消息队列的方式将各个所述消息体传输给外部的数据接收机构。
通过如图1所示的实施例可知,该数据传输方法包括:根据预先设定的切片长度对获取的待传输数据进行切片处理,形成至少一个数据切片,将每一个数据切片与预先设定的消息头进行组合,形成对应的消息体,以消息队列的方式将各个消息体传输给外部的数据接收机构。通过上述过程可知,本方案将待传输数据处理为至少一个消息体,然后将待传输数据以各个消息体的形式传输给数据接收机构,由于消息体中的数据切片长度可以根据业务要求灵活设定,因此本发明实施例可以降低数据传输失败的概率。
在本发明一个实施例中,在所述根据预先设定的切片长度对所述待传输数据进行切片处理之前,进一步包括:
将所述待传输数据转换为可扩展标记语言XML格式的待传输数据。
在本实施例中,XML格式为数据接收机构采用的数据格式,由于XML格式的数据既有数据又有描述数据的标记文字,因此XML格式的数据易读、且不易出错,因此大部分数据接收机构均采用XML格式。当数据接收机构采用XML格式时,获取的非XML格式的待传输数据在数据接收机构中可用性较低,因此需要将非XML格式的待传输数据转换为XML格式的待传输数据。
在本实施例中,比如获取的待传输数据为JavaBean格式的待传输数据,而数据接收机构采用XML格式,因此需要将JavaBean格式的待传输数据按照XML的语法规则转换为XML格式的待传输数据,以使数据接收机构能够对待传输数据进行存储等处理。
在本实施例中,当数据接收机构采用的XML格式之外的其他格式时,需要将获取的待传输数据的格式转换为数据接收机构采用的格式。比如,数据接收机构采用JavaBean格式时,获取的XML格式的待传输数据在数据接收机构中的可用性较低,因此需要将XML格式的待传输数据转换为JavaBean格式的待传输数据。
根据上述实施例,将待传输数据转换为XML格式的待传输数据,以提高待传输数据在数据接收机构中的可用性。
在本发明一个实施例中,可以将转换为XML格式的待传输数据存储在指定的文件中,以便在后续的数据处理过程中出现异常情况时,可以以其作为基准来核验数据。
在本发明一个实施例中,在所述根据预先设定的切片长度对所述待传输数据进行切片处理之前,进一步包括:
通过预先设定的加密算法对所述待传输数据进行加密。
在本实施例中,预先设定的加密算法可以根据具体的业务要求来确定,比如加密算法可以选用AES(Advanced Encryption Standard,高级加密标准)算法、SHA1(SecureHash Algorithm,安全哈希算法)算法、RipeMD(RACE Integrity Primitives EvaluationMessage Digest,RACE原始完整性校验消息摘要)算法和WhirlPool算法中的任意一种或多种。
在本实施例中,当获取待传输数据后,通过设定的加密算法对待传输数据进行加密。比如,预先设定的加密算法为SHA1算法,则通过SHA1算法对待传输数据进行加密。
在本实施例中,预先设定的加密算法需为与数据接收机构约定的算法,以便数据接收机构可以根据该加密算法对接收到的待传输数据进行解密操作。
根据上述实施例,通过预先设定的加密算法对获取的待传输数据进行加密,以防止待传输数据泄露,因此提高了待传输数据的安全性。
在本发明一个实施例中,预先设定的切片长度可以根据具体的业务要求确定,但是需要注意的是,预先设定的切片长度要小于或等于数据接收机构的内存存储空间的大小,以便包括一个数据切片的消息体可以完整的发送到数据接收机构中。其中,预先设定的切片长度等于数据接收机构的内存存储空间的大小时,包括一个数据切片的消息体不能发送到数据接收机构中的几率较高,因此不作为优选的方式。
在本实施例中,基于预先设定的切片长度与待传输数据的长度的关系,具有如下的至少两种切片处理过程;
情况一:当预先设定的切片长度大于等于待传输数据的长度时,将整个的待传输数据作为一个数据切片;
针对于情况一,比如预先设定的切片长度为1GB,而待传输数据的长度为500MB,可以看出预先设定的切片长度1GB大于待传输数据的长度500MB,因此,将整个的500MB待传输数据作为一个数据切片。
情况二:当预先设定的切片长度小于待传输数据的长度时,切片处理过程为:判断未被切分的当前待传输数据的长度是否大于设定的切片长度,若是,从所述未被切分的当前数据中切分出一个长度为所述设定的切片长度的数据切片;否则,将所述未被切分的当前待传输数据作为一个数据切片。
针对于情况二,比如预先设定的切片长度为300MB,而待传输数据的长度为1000MB,可以看出预先设定的切片长度300MB小于待传输数据的长度1000MB,因此切片处理过程为:当判断未被切分的当前待传输数据的长度1000MB大于设定的切片长度300MB时,从未被切分的当前1000MB的待传输数据中切分出一个长度为300MB的数据切片1,剩余未被切分的当前待传输数据的长度为700MB;然后按照上述过程进行循环切片,得到长度为300MB的数据切片1、长度为300MB的数据切片2和长度为300MB的数据切片3。当得到数据切片3后,剩余的未被切分的当前待传输数据的长度为100MB,则当判断出未被切分的当前待传输数据的长度100MB小于设定的切片长度300MB时,将未被切分的当前待传输数据100MB作为一个数据切片,得到长度为100MB的数据切片4。
在本发明一个实施例中,在所述将每一个所述数据切片与预先设定的消息头进行组合之前,进一步包括:
确定所述待传输数据的第一消息摘要算法第五版MD5值;
确定每一个所述数据切片的第二MD5值;
根据每一个所述数据切片的第二MD5值,确定各个所述数据切片组合体的第三MD5值;
判断所述第一MD5值是否与所述第三MD5值相同,如果是,执行所述将每一个所述数据切片与预先设定的消息头进行组合。
在本实施例中,为了确定形成的至少一个数据切片是否为完整的待传输数据,因此需要在形成至少一个数据切片之后,再将每一个数据切片与预先设定的消息头进行组合形成对应的消息体之前,确定各个数据切片组合体的第三MD5值是否与待传输数据对应的第一MD5值是否相同,当相同时则确定形成的至少一个数据切片可以组合为完整的待传输数据;否则,则形成的至少一个数据切片不能组合为完整的待传输数据,说明在切片处理过程中存在异常情况,需要在排除异常情况后,对待传输数据重新进行切片处理。
在本实施例中,比如对待传输数据进行切片处理后,形成了数据切片1、数据切片2和数据切片3三个数据切片。在确定形成的三个数据切片是否为完整的待传输数据时,需要先确定每一个数据切片的第二MD5值,然后根据各个第二MD5值确定各个数据切片组合体的第三MD5值,比如第三MD5值为A。当判断第三MD5值与确定的待传输数据的第一MD5值相同时,则确定形成的三个数据切片可以组合为完整的待传输数据,执行将每一个数据切片与预先设定的消息头进行组合。当判断第三MD5值与确定的待传输数据的第一MD5值不相同时,则确定形成的三个数据切片不能组合为完整的待传输数据,说明在切片处理过程中存在异常情况,需要在排除异常情况后,对待传输数据重新进行切片。
根据上述实施例,通过在对待传输数据进行切片处理形成至少一个数据切片之后,在确定各个数据切片组合体的第三MD5值与待传输数据的第一MD5值相同时,才执行将每一个数据切片与预先设定的消息头进行组合。因此提高了至少一个数据切片的完整性。
在本发明一个实施例中,所述将每一个所述数据切片与预先设定的消息头进行组合形成对应的消息体,包括:
针对于任意一个所述数据切片,判断该数据切片是否为包括所述待传输数据结尾;
如果是,将该数据切片与预先设定的第一消息头进行组合,形成对应的消息体,其中所述第一消息头中包括数据尾标识符;
如果否,将该数据切片与预先设定的第二消息头进行组合,形成对应的消息体,其中所述第二消息头中包括非数据尾标识符。
在本实施例中,预先设定的第一消息头和预先设定的第二消息头中包括的内容均可以根据业务要求确定,比如第一消息头包括:流水号、外部流水号、消息类型、业务类型、发起方、发送机构、接收机构、日期时间、消息标识号MD5值、序列、返回代码中的任意一种或多种以及数据尾标识符。第二消息头包括:流水号、外部流水号、消息类型、业务类型、发起方、发送机构、接收机构、日期时间、消息标识号MD5值、序列、返回代码中的任意一种或多种以及非数据尾标识符。另外第一消息头中包括的数据尾标识符以及第二消息头中包括的非数据尾标识符均可以根据业务要求确定。比如,设定的数据尾标识符为true,设定的非数据尾标识符为false。
在本实施例中,下述表1为第一消息头或第二消息头包括的具体内容,表1中包括的内容只是一种优选的内容,也可以根据具体业务要求对表1中包括的内容进行修改、添加和删除。
表1
上述表1中是否必输项中的Y代表yes,N代表no。元素类型中C1、C2、C4、C10、C40、C100均代表字符串的长度。
在本实施例中,可以先获取待传输数据结尾包括的字符串,然后针对任意一个数据切片,判断该数据切片是否为包括待传输数据结尾包括的字符串。如果是,将该数据切片与包括true的第一消息头进行组合,形成对应的消息体;如果否,将该数据切片与包括false的第二消息头进行组合,形成对应的消息体。
根据上述实施例,为包括待传输数据结尾的数据切片和不包括待传输数据结尾的数据切片组合不同种类的消息头,形成不同的消息体。以使数据接收机构能够根据消息体中的消息头判断其接收到的待传输数据是否完整,从而提高待传输数据的完整性。
在本发明一个实施例中,以消息队列的方式将各个消息体传输给外部的数据接收机构时可以存在两种方式,一种是依照组合消息体的顺序将各个消息体依次传输给外部的数据接收机构;另一种是所有的消息体组合完成后,一次性将全部的消息体发送给外部的数据接收机构。
下面以获取JavaBean格式的待传输数据为例,展开说明数据传输方法,如图2所示,该数据传输方法可以包括如下步骤:
步骤201:预先设定切片长度、预先设定加密算法、确定第一消息头以及确定第二消息头。
在本步骤中,设定的切片长度为30GB、预先设定加密算法为SHA1算法、确定的第一消息头中包括数据尾标识符true以及确定的第二消息头中包括数据尾标识符false。
在本步骤中,切片长度的设定可通过如下代码完成:
//切片长度
int num=xxxxxx
步骤202:获取待传输数据。
在本步骤中,获取的待传输数据为JavaBean格式的待传输数据。
步骤203:将待传输数据转换为XML格式的待传输数据,并将转换的XML格式的待传输数据存储在指定文件中。
在本步骤中,将JavaBean格式的待传输数据转换为XML格式的待传输数据,并将XML格式的待传输数据存储在指定文件D:\wenjian中。
在本步骤中,可以使用JAXBContext组件把待传输数据XML格式的待传输数据,可以采用如下代码:
在本步骤中,将转换的XML格式的待传输数据存储在指定文件中可以通过如下语句实现:
步骤204:通过预先设定的加密算法对待传输数据进行加密。
在本步骤中,利用步骤201中设定的SHA1算法为XML格式的待传输数据进行加密,经加密后的待传输数据为100GB。
在本步骤中,可以通过如下代码:String cipher=CCBUtil.encrypt(str)对待传输数据进行加密。
步骤205:确定待传输数据的第一MD5值,获取待传输数据的数据结尾。
在本步骤中,确定待传输数据的第一MD5值为A04ED。
在本步骤中,获取待传输数据的数据结尾对应的字符串为finish。
步骤206:根据预先设定的切片长度对待传输数据进行切片处理,形成至少一个数据切片。
在本步骤中,由于在步骤201中预先设定的切片长度30GB小于待传输数据100GB。则按照如下过程对待传输数据进行切片处理,判断未被切分的当前待传输数据的长度是否大于设定的切片长度,若是,从所述未被切分的当前数据中切分出一个长度为所述设定的切片长度的数据切片;否则,将所述未被切分的当前待传输数据作为一个数据切片。经过上述的循环切片处理过程后,形成了数据切片1、数据切片2、数据切片3和数据切片4,其中数据切片1至3均为30GB,数据切片4为10GB。
在本步骤中,可以通过如下代码实现:
步骤207:确定每一个数据切片的第二MD5值。
在本步骤中,需要确定在步骤中形成的4个数据切片中每一个数据切片的第二MD5值。
步骤208:根据每一个数据切片的第二MD5值,确定各个数据切片组合体的第三MD5值。
在本步骤中,需要根据在步骤207中确定的数据切片1、数据切片2、数据切片3和数据切片4的第二MD5值,确定数据切片1、数据切片2、数据切片3和数据切片4四个数据切片组合体的第三MD5值,比如确定的第三MD5值为A04ED。
步骤209:判断第一MD5值是否与第三MD5值相同,如果是,步骤210;否则,结束当前流程。
在本步骤中,判断步骤205中确定的第一MD5值A04ED与步骤208中确定的第三MD5值A04ED是否相同,可以看出是相同的,则确定形成的四个数据切片可以组合为完整的待传输数据,执行步骤210。
第一MD5值和第三MD5值不同时是,则确定形成的四个数据切片不能组合为完整的待传输数据,说明在切片处理过程中存在异常情况,需要结束当前流程,来排除异常情况。当排除异常情况后再对待传输数据重新进行切片。
步骤210:针对于任意一个数据切片,判断该数据切片是否为包括待传输数据结尾;如果是,执行步骤211;否则,执行步骤212。
在本步骤中,针对数据切片1、数据切片2、数据切片3和数据切片4中的任意一个数据切片,均要判断该数据切片是否为包括步骤205中获取的待传输数据结尾finish;如果包括,执行步骤211;如果不包括,执行步骤212。
步骤211:将该数据切片与预先设定的第一消息头进行组合,形成对应的消息体。
在本步骤中,将包括数据结尾的数据切片4与步骤201中设定的包括true的第一数据头进行组合,形成对应的消息体。
每一个消息体由第一消息头和数据切片组成。其中第一消息头作为公共信息和数据切片作为业务信息。整个XML格式的消息体以<msgbody>为根节点,公共信息以<ginfo>为节点名称,业务信息以<binfo>为节点名称。详细的格式如下:
步骤212:将该数据切片与预先设定的第二消息头进行组合,形成对应的消息体。
在本步骤中,将不包括数据结尾的数据切片1、数据切片2和数据切片3与步骤201中设定的包括false的第二数据头进行组合,形成对应的消息体。
每消息体由第二消息头和数据切片组成。其中第二消息头作为公共信息和数据切片作为业务信息。整个XML格式的消息体以<msgbody>为根节点,公共信息以<ginfo>为节点名称,业务信息以<binfo>为节点名称。详细的格式如下:
步骤213:以消息队列的方式将各个消息体传输给外部的数据接收机构。
在本步骤中,以消息队列的方式将各个消息体一次全部传输给外部的数据接收机构。
在本步骤中,采用的代码可以为:
Hashtable properties=new Hashtable();
//对方IP地址
properties.put(“hostname”ReadProperties.getValue(“MQ.properties”,“SEND_IP”));
//TRANSPORT
properties.put(“transport”,ReadProperties.getValue(“MQ.properties”,“TRANSPORT”));
//通道
properties.put(“channel”,ReadProperties.getValue(“MQ.properties”,“CHANNEL”));
//端口
properties.put(“port",new Integer(Integer.parseInt(ReadProperties.getValue(“MQ.properties”,“SEND_PORT”))));
//字符集
properties.put(“CCSID”,new Integer(1381));
//队列管理器QueueManager
qMgr=new MQQueueManager(ReadProperties.getValue(“MQ.properties”,“SEND_QMANAGER”),properties);
intopenOptions=MQC.MQOO_OUTPUT|MQC.MQOO_FAIL_IF_QUIESCING;
//接收方的队列名
MQQueuequeue=qMgr.accessQueue(ReadProperties.getValue
(“MQ.properties”,“SEND_QNAME”),openOptions);
//mq消息
MQMessage msg=new MQMessage();
msg.format=MQC.MQFMT_STRING;
//msg.characterSet=819;
//队列管理器编码字符集为819-简体中文
//List<String>
for(String message:messageList){
msg.write(message.getBytes(ReadProperties.getValue(“MQ.properties”,“ENCODING”)));
//Specify the default put message options
MQPutMessageOptions pmo=new MQPutMessageOptions();
//Put the message to the queue
queue.put(msg,pmo);
msg.clearMessage();
}
queue.close();
//Disconnect from the QueueManager
qMgr.disconnect();
如图3、图4所示,本发明实施例提供了一种数据传输装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。从硬件层面而言,如图3所示,为本发明实施例提供的数据传输装置所在设备的一种硬件结构图,除了图3所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等。以软件实现为例,如图4所示,作为一个逻辑意义上的装置,是通过其所在设备的CPU将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。本实施例提供的数据传输装置,包括:
获取单元401,用于获取待传输数据;
切片单元402,用于根据预先设定的切片长度对所述待传输数据进行切片处理,形成至少一个数据切片;
组合单元403,用于将每一个所述数据切片与预先设定的消息头进行组合,形成对应的消息体;
传输单元404,用于以消息队列的方式将各个所述消息体传输给外部的数据接收机构。
通过如图4所示的实施例可知,该数据传输装置包括:获取单元、切片单元、组合单元和传输单元。切片单元根据预先设定的切片长度对获取单元获取的待传输数据进行切片处理,形成至少一个数据切片;组合单元将每一个数据切片与预先设定的消息头进行组合,形成对应的消息体;传输单元以消息队列的方式将各个所述消息体传输给外部的数据接收机构。通过上述可知,本方案利用切片单元和组合单元将待传输数据处理为至少一个消息体,然后利用传输单元将待传输数据以各个消息体的形式传输给数据接收机构,由于消息体中的数据切片长度可以根据业务要求灵活设定,因此本发明实施例可以降低数据传输失败的概率。
在本发明一个实施例中,如图5所示,所述数据传输装置可以进一步包括:转换单元501;
所述转换单元501,用于将所述待传输数据转换为可扩展标记语言XML格式的待传输数据。
在本发明一个实施例中,如图6所示,所述数据传输装置可以进一步包括:加密单元601;
所述加密单元601,用于通过预先设定的加密算法对所述待传输数据进行加密。
在本发明一个实施例中,如图7所示,所述数据传输装置可以进一步包括:第一确定单元701、第二确定单元702、第三确定单元703及判断单元704;
所述第一确定单元701,用于确定所述待传输数据的第一MD5值;
所述第二确定单元702,用于确定每一个所述数据切片的第二MD5值;
所述第三确定单元703,用于根据每一个所述数据切片的第二MD5值,确定各个所述数据切片组合体的第三MD5值;
所述判断单元704,用于判断所述第一确定单元701确定的第一MD5值是否与所述第三确定单元703确定的第三MD5值相同,如果是,触发所述组合单元403执行所述将每一个所述数据切片与预先设定的消息头进行组合。
在本发明一个实施例中,所述组合单元403,用于针对于任意一个所述数据切片,判断该数据切片是否为包括所述待传输数据结尾;如果是,将该数据切片与预先设定的第一消息头进行组合,形成对应的消息体,其中所述第一消息头中包括数据尾标识符;如果否,将该数据切片与预先设定的第二消息头进行组合,形成对应的消息体,其中所述第二消息头中包括非数据尾标识符。
本发明一个实施例提供了一种可读介质,该可读介质包括执行指令,当存储控制器的处理器执行所述执行指令时,所述存储控制器执行上述任一项所述的数据传输方法。
在本发明一个实施例提供了一种存储控制器,该存储控制器包括:处理器、存储其和总线;所述存储器用于存储执行指令,所述处理器与所述存储器通过所述总线连接,当所述存储控制器运行时,所述处理器执行所述存储器存储的所述执行指令,以使所述存储控制器执行上述任一所述的数据传输方法。
如图8所示,本发明实施例提供了一种数据传输系统,该系统可以包括:数据接收机构801以及上述任一所述的数据传输装置802;其中,
所述数据接收机构801,用于接收所述数据传输装置802传输的各个消息体。
通过如图8所示的实施例可知,该数据传输系统包括:数据接收机构和数据传输装置,数据接收机构接收数据传输装置传输的各个消息体。由于消息体的长度可以根据业务要求灵活设定,因此本发明实施例可以降低数据传输失败的概率。
在本发明一个实施例中,所述数据接收机构801,进一步用于针对于接收的每一个所述消息体,判断该消息体是否包括所述第一消息头,其中,所述第一消息头中包括数据尾标识符;如果是,将接收到的各个消息体进行组合,还原待传输数据;如果否,继续接收所述数据传输装置传输的消息体。
在本发明一个实施例中,当数据接收机构接收到待传输数据对应的全部消息体后,根据各个消息体对应的消息头中的信息将各个消息体进行组合,还原待传输数据,将还原后的待传输数据进行存储等处理。
上述装置及系统内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
综上所述,本发明各个实施例至少可以实现如下有益效果:
1、在本发明实施例中,该数据传输方法包括:根据预先设定的切片长度对获取的待传输数据进行切片处理,形成至少一个数据切片,将每一个数据切片与预先设定的消息头进行组合,形成对应的消息体,以消息队列的方式将各个消息体传输给外部的数据接收机构。通过上述过程可知,本方案将待传输数据处理为至少一个消息体,然后将待传输数据以各个消息体的形式传输给数据接收机构,由于消息体中的数据切片长度可以根据业务要求灵活设定,因此本发明实施例可以降低数据传输失败的概率。
2、在本发明实施例中,将待传输数据转换为XML格式的待传输数据,以提高待传输数据在数据接收机构中的可用性。
3、在本发明实施例中,通过预先设定的加密算法对获取的待传输数据进行加密,以防止待传输数据泄露,因此提高了待传输数据的安全性。
4、在本发明实施例中,通过在对待传输数据进行切片处理形成至少一个数据切片之后,在确定各个数据切片组合体的第三MD5值与待传输数据的第一MD5值相同时,才执行将每一个数据切片与预先设定的消息头进行组合。因此提高了至少一个数据切片的完整性。
5、在本发明实施例中,为包括待传输数据结尾的数据切片和不包括待传输数据结尾的数据切片组合不同种类的消息头,形成不同的消息体。以使数据接收机构能够根据消息体中的消息头判断其接收到的待传输数据是否完整,从而提高待传输数据的完整性。
6、在本发明实施例中,该数据传输装置包括:获取单元、切片单元、组合单元和传输单元。切片单元根据预先设定的切片长度对获取单元获取的待传输数据进行切片处理,形成至少一个数据切片;组合单元将每一个数据切片与预先设定的消息头进行组合,形成对应的消息体;传输单元以消息队列的方式将各个所述消息体传输给外部的数据接收机构。通过上述可知,本方案利用切片单元和组合单元将待传输数据处理为至少一个消息体,然后利用传输单元将待传输数据以各个消息体的形式传输给数据接收机构,由于消息体中的数据切片长度可以根据业务要求灵活设定,因此本发明实施例可以降低数据传输失败的概率。
7、在本发明实施例中,该数据传输系统包括:数据接收机构和数据传输装置,数据接收机构接收数据传输装置传输的各个消息体。由于消息体的长度可以根据业务要求灵活设定,因此本发明实施例可以降低数据传输失败的概率。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种数据传输方法,其特征在于,包括:
获取待传输数据;
根据预先设定的切片长度对所述待传输数据进行切片处理,形成至少一个数据切片;
将每一个所述数据切片与预先设定的消息头进行组合,形成对应的消息体;
以消息队列的方式将各个所述消息体传输给外部的数据接收机构。
2.根据权利要求1所述的方法,其特征在于,
在所述根据预先设定的切片长度对所述待传输数据进行切片处理之前,进一步包括:
将所述待传输数据转换为可扩展标记语言XML格式的待传输数据;
和/或,
在所述根据预先设定的切片长度对所述待传输数据进行切片处理之前,进一步包括:
通过预先设定的加密算法对所述待传输数据进行加密。
3.根据权利要求1所述的方法,其特征在于,
在所述将每一个所述数据切片与预先设定的消息头进行组合之前,进一步包括:
确定所述待传输数据的第一消息摘要算法第五版MD5值;
确定每一个所述数据切片的第二MD5值;
根据每一个所述数据切片的第二MD5值,确定各个所述数据切片组合体的第三MD5值;
判断所述第一MD5值是否与所述第三MD5值相同,如果是,执行所述将每一个所述数据切片与预先设定的消息头进行组合。
4.根据权利要求1至3中任一所述的方法,其特征在于,
所述将每一个所述数据切片与预先设定的消息头进行组合形成对应的消息体,包括:
针对于任意一个所述数据切片,判断该数据切片是否为包括所述待传输数据结尾;
如果是,将该数据切片与预先设定的第一消息头进行组合,形成对应的消息体,其中所述第一消息头中包括数据尾标识符;
如果否,将该数据切片与预先设定的第二消息头进行组合,形成对应的消息体,其中所述第二消息头中包括非数据尾标识符。
5.一种数据传输装置,其特征在于,包括:
获取单元,用于获取待传输数据;
切片单元,用于根据预先设定的切片长度对所述待传输数据进行切片处理,形成至少一个数据切片;
组合单元,用于将每一个所述数据切片与预先设定的消息头进行组合,形成对应的消息体;
传输单元,用于以消息队列的方式将各个所述消息体传输给外部的数据接收机构。
6.根据权利要求5所述的装置,其特征在于,
进一步包括:转换单元;
所述转换单元,用于将所述待传输数据转换为可扩展标记语言XML格式的待传输数据;
和/或,
进一步包括:加密单元;
所述加密单元,用于通过预先设定的加密算法对所述待传输数据进行加密。
7.根据权利要求5所述的装置,其特征在于,进一步包括:第一确定单元、第二确定单元、第三确定单元及判断单元;
所述第一确定单元,用于确定所述待传输数据的第一MD5值;
所述第二确定单元,用于确定每一个所述数据切片的第二MD5值;
所述第三确定单元,用于根据每一个所述数据切片的第二MD5值,确定各个所述数据切片组合体的第三MD5值;
所述判断单元,用于判断所述第一确定单元确定的第一MD5值是否与所述第三确定单元确定的第三MD5值相同,如果是,触发所述组合单元执行所述将每一个所述数据切片与预先设定的消息头进行组合。
8.根据权利要求5至7中任一所述的装置,其特征在于,
所述组合单元,用于针对于任意一个所述数据切片,判断该数据切片是否为包括所述待传输数据结尾;如果是,将该数据切片与预先设定的第一消息头进行组合,形成对应的消息体,其中所述第一消息头中包括数据尾标识符;如果否,将该数据切片与预先设定的第二消息头进行组合,形成对应的消息体,其中所述第二消息头中包括非数据尾标识符。
9.一种数据传输系统,其特征在于,包括:数据接收机构以及如权利要求5至8任一所述的数据传输装置;其中,
所述数据接收机构,用于接收所述数据传输装置传输的各个消息体。
10.根据权利要求9所述的系统,其特征在于,
所述数据接收机构,进一步用于针对于接收的每一个所述消息体,判断该消息体是否包括所述第一消息头,其中,所述第一消息头中包括数据尾标识符;如果是,将接收到的各个消息体进行组合,还原待传输数据;如果否,继续接收所述数据传输装置传输的消息体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710076546.9A CN106850451A (zh) | 2017-02-13 | 2017-02-13 | 一种数据传输方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710076546.9A CN106850451A (zh) | 2017-02-13 | 2017-02-13 | 一种数据传输方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106850451A true CN106850451A (zh) | 2017-06-13 |
Family
ID=59128913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710076546.9A Pending CN106850451A (zh) | 2017-02-13 | 2017-02-13 | 一种数据传输方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106850451A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109257744A (zh) * | 2018-11-05 | 2019-01-22 | 广东工业大学 | 5g数据传输方法、系统以及5g数据发送与接收装置 |
CN113382063A (zh) * | 2021-06-07 | 2021-09-10 | 浪潮软件科技有限公司 | 基于es的文件上传检索分析方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101325505A (zh) * | 2008-07-24 | 2008-12-17 | 中兴通讯股份有限公司 | 一种复用数据流的传输方法 |
CN101447856A (zh) * | 2007-11-28 | 2009-06-03 | 新奥特(北京)视频技术有限公司 | 一种大容量文件传输方法 |
US20140289346A1 (en) * | 2001-03-26 | 2014-09-25 | Salesforce.Com, Inc. | Method, system, and computer program product for sending and receiving messages |
CN105187533A (zh) * | 2015-09-10 | 2015-12-23 | 浪潮软件股份有限公司 | 一种数据传输的方法及装置 |
-
2017
- 2017-02-13 CN CN201710076546.9A patent/CN106850451A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140289346A1 (en) * | 2001-03-26 | 2014-09-25 | Salesforce.Com, Inc. | Method, system, and computer program product for sending and receiving messages |
CN101447856A (zh) * | 2007-11-28 | 2009-06-03 | 新奥特(北京)视频技术有限公司 | 一种大容量文件传输方法 |
CN101325505A (zh) * | 2008-07-24 | 2008-12-17 | 中兴通讯股份有限公司 | 一种复用数据流的传输方法 |
CN105187533A (zh) * | 2015-09-10 | 2015-12-23 | 浪潮软件股份有限公司 | 一种数据传输的方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109257744A (zh) * | 2018-11-05 | 2019-01-22 | 广东工业大学 | 5g数据传输方法、系统以及5g数据发送与接收装置 |
CN109257744B (zh) * | 2018-11-05 | 2021-11-26 | 广东工业大学 | 5g数据传输方法、系统以及5g数据发送与接收装置 |
CN113382063A (zh) * | 2021-06-07 | 2021-09-10 | 浪潮软件科技有限公司 | 基于es的文件上传检索分析方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5757913A (en) | Method and apparatus for data authentication in a data communication environment | |
US8401186B2 (en) | Cloud storage data access method, apparatus and system based on OTP | |
US8375282B2 (en) | System and method for securely adding redundancy to an electronic message | |
US5642421A (en) | Encryption of low data content ATM cells | |
JP6556232B2 (ja) | データストリームのリアルタイム分類を実行する分類デバイス及び方法、コンピュータープログラム製品、並びにシステム | |
US7783046B1 (en) | Probabilistic cryptographic key identification with deterministic result | |
US20040205336A1 (en) | Transparent IPSec processing inline between a framer and a network component | |
KR101989813B1 (ko) | 특정 포맷을 가지는 대체 데이터의 생성 및 검증 | |
JP2012164031A (ja) | データ処理装置及びデータ保管装置及びデータ処理方法及びデータ保管方法及びプログラム | |
CN111556072B (zh) | 一种改进索引加密算法与系统 | |
CN106850451A (zh) | 一种数据传输方法、装置及系统 | |
Biham | How to Forge DES-Encrypted Messages in $2^{28} $ Steps | |
CN117640256B (zh) | 一种无线网卡的数据加密方法、推荐装置和存储介质 | |
US8122247B2 (en) | Processing method for message integrity with tolerance for non-sequential arrival of message data | |
WO2008064153A2 (en) | Processing method for message integrity with tolerance for non-sequential arrival of message data | |
CN114615354A (zh) | 处理报文的方法及装置 | |
CN111414341B (zh) | 一种物联网环境下的数据归一化描述方法 | |
JP2006350560A (ja) | 電子メールシステム | |
CN115757328B (zh) | 一种基于云平台的数据储存方法及存储管理系统 | |
CN113438506B (zh) | 视频文件的还原方法、装置、计算机设备和存储介质 | |
CN110311835B (zh) | 一种基于内容模板的电力iec协议符合性验证方法 | |
JP2004180234A (ja) | 暗号パケット処理装置 | |
CN109257325A (zh) | 传输私密信息的方法、装置和计算机可读存储介质 | |
CN117749348A (zh) | 一种基于区块链的通信数据传输方法及装置 | |
CN116233113A (zh) | 一种基于流加密进行ipfs文件上传提取方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170613 |
|
RJ01 | Rejection of invention patent application after publication |