CN110855727A - 基于字节序列化和反序列化的数据对象的传输系统和方法 - Google Patents
基于字节序列化和反序列化的数据对象的传输系统和方法 Download PDFInfo
- Publication number
- CN110855727A CN110855727A CN201810952583.6A CN201810952583A CN110855727A CN 110855727 A CN110855727 A CN 110855727A CN 201810952583 A CN201810952583 A CN 201810952583A CN 110855727 A CN110855727 A CN 110855727A
- Authority
- CN
- China
- Prior art keywords
- data object
- data
- serialization
- byte
- byte stream
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于字节序列化和反序列化的数据对象的传输系统和方法,包括:对象字典,用于对待传输的全局数据对象进行定义,为每一个数据对象分配唯一的ID;发送端,与对象字典相连,从对象字典查询数据对象的ID,且所述发送端具有对象序列化单元,用于对待传输的数据对象进行字节序列化转换为字节流,进行编码,并通过网络传输进行数据传送;接收端,与对象字典相连,通过网络传输进行数据接收,且所述接收端具有对象反序列化单元,用于将接收到的网络传输的字节流进行反序列化,进行解码,读取数据对象的ID,结合对象字典获取传输对象。本发明设计简单,传输效率高。
Description
技术领域
本发明涉及一种网络对象传输技术,尤其涉及一种基于字节序列化和反序列化的数据对象的传输系统和方法。
背景技术
随着业务系统不断拆分,各业务模块之间相互调用,需要交互的数据对象也愈加频繁,对象序列化可以将一个对象通过流的方式在网络上传输。
现有传输方案一:基于Java语言原生序列化技术,对象通过实现java.io.Serializable接口,在序列化过程中,虚拟机会试图调用对象类里的writeObject和readObject方法,进行用户自定义的序列化和反序列化。看起来使用JDK提供的序列化技术没有什么问题,其实不然。JDK提供的序列化技术相对效率较低,在转换二进制数组过程中空间利用率较差。
现有传输方案二:基于Java语言开源框架技术,如Kryo,FST等等。Kryo是一种成熟的序列化实现,为了保证序列化的高效性,会加载需要序列化的类,这会带来一定的消耗。而FST是一种较新的序列化实现,目前还缺乏足够多的成熟使用案例。
发明内容
鉴于目前现有技术的不足,本发明的目的在于提供一种快速、高效的基于字节序列化和反序列化的数据对象的传输系统和方法。
为达到上述目的,本发明的实施例采用如下技术方案:
一种基于字节序列化和反序列化的数据对象的传输系统,包括:
对象字典,用于对待传输的全局数据对象进行定义,为每一个数据对象分配唯一的ID;
发送端,与对象字典相连,从对象字典查询数据对象的ID,且所述发送端具有对象序列化单元,用于对待传输的数据对象进行字节序列化转换为字节流,进行编码,并通过网络传输进行数据传送;
接收端,与对象字典相连,通过网络传输进行数据接收,且所述接收端具有对象反序列化单元,用于将接收到的网络传输的字节流进行反序列化,进行解码,读取数据对象的ID,结合对象字典获取传输对象。
进一步,其中所述对象序列化单元的对象序列化方法和对象反序列化单元的对象反序列化方法为根据待传输的数据对象自定义。
进一步,其中所述对象字典对待传输的全局数据对象进行定义,为每一个数据对象分配唯一的ID,是对数据对象的不变量进行定义,所述数据对象的不变量为字段名称;
所述发送端的对象序列化单元对待传输的数据对象进行字节序列化转换为字节流,是对数据对象的变量转换成字节流,所述数据对象的变量为动态变化的字段值;
所述接收端的对象反序列化单元对接收到的字节流进行反序列化,是将接收到的字节流转换成数据对象的变量。
进一步,发送端将字节流按固定顺序写入到发送端预定义缓存中,并将数据对象的ID写入到发送端预定义缓存的头部;
接收端将接收到的字节流存储到接收端预定义缓存中后,从接收端预定义缓存的头部读取数据对象的ID,根据全局字典获取传输对象,并从接收端预定义缓存中按顺序读取数据对象的变量值并逐个赋值给数据对象的变量。
一种基于字节序列化和反序列化的数据对象的传输方法,包括:
对象字典对待传输的全局数据对象进行定义,为每一个数据对象分配唯一的ID;
发送端从对象字典查询数据对象的ID,且发送端的对象序列化单元对待传输的数据对象进行字节序列化转换为字节流,进行编码,并通过网络传输进行数据传送;
接收端的对象反序列化单元对接收到的网络传输的字节流进行反序列化,进行解码,读取数据对象的ID,结合对象字典获取传输对象。
进一步,还包括根据待传输的数据对象自定义序列化和反序列化方法。
进一步,其中所述对象字典对待传输的全局数据对象进行定义,,为每一个数据对象分配唯一的ID,是对数据对象的不变量进行定义,所述数据对象的不变量为字段名称;
所述发送端的对象序列化单元对待传输的数据对象进行字节序列化转换为字节流,是对数据对象的变量转换成字节流,所述数据对象的变量为动态变化的字段值;
所述接收端的对象反序列化单元对接收到的字节流进行反序列化,是将接收到的字节流转换成数据对象的变量。
进一步,发送端将字节流按固定顺序写入到发送端预定义缓存中,并将数据对象的ID写入到发送端预定义缓存的头部;
接收端将接收到的字节流存储到接收端预定义缓存中后,从接收端预定义缓存的头部读取数据对象的ID,根据全局字典获取传输对象,并从接收端预定义缓存中按顺序读取数据对象的变量值并逐个赋值给数据对象的变量。
本发明的优点:本发明设计科学,过程简单,在网络传输数据对象时,仅传输数据对象动态变化的字段值,减少固定不变的字段名称的传输,大大提高了数据对象传输过程中的数据传输效率,降低了网络传输吞吐,提升业务模块在处理数据对象序列化和反序列化过程中的速度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所述的一种基于字节序列化和反序列化的数据对象的传输系统的结构方框示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参见图1所示,本发明具体实施方式一种基于字节序列化和反序列化的数据对象的传输系统,包括:
对象字典,用于对待传输的全局数据对象进行定义,为每一个数据对象分配唯一的ID;
发送端,与对象字典相连,从对象字典查询数据对象的ID,且所述发送端具有对象序列化单元,用于对待传输的数据对象进行字节序列化转换为字节流,进行编码,并通过网络传输进行数据传送;
接收端,与对象字典相连,通过网络传输进行数据接收,且所述接收端具有对象反序列化单元,用于将接收到的网络传输的字节流进行反序列化,进行解码,读取数据对象的ID,结合对象字典获取传输对象。
其中所述对象序列化单元的对象序列化方法和对象反序列化单元的对象反序列化方法为根据待传输的数据对象自定义。
其中所述对象字典对待传输的全局数据对象进行定义,为每一个数据对象分配唯一的ID,是对数据对象的不变量进行定义,所述数据对象的不变量为字段名称。
所述发送端的对象序列化单元对待传输的数据对象进行字节序列化转换为字节流,是对数据对象的变量转换成字节流,所述数据对象的变量为动态变化的字段值。
所述接收端的对象反序列化单元对接收到的字节流进行反序列化,是将接收到的字节流转换成数据对象的变量。
发送端将字节流按固定顺序写入到发送端预定义缓存中,并将数据对象的ID写入到发送端预定义缓存的头部。
接收端将接收到的字节流存储到接收端预定义缓存中后,从接收端预定义缓存的头部读取数据对象的ID,根据全局字典获取传输对象,并从接收端预定义缓存中按顺序读取数据对象的变量值并逐个赋值给数据对象的变量。
一种基于字节序列化和反序列化的数据对象的传输方法,包括:
对象字典对待传输的全局数据对象进行定义,为每一个数据对象分配唯一的ID;
发送端从对象字典查询数据对象的ID,且发送端的对象序列化单元对待传输的数据对象进行字节序列化转换为字节流,进行编码,并通过网络传输进行数据传送;
接收端的对象反序列化单元对接收到的网络传输的字节流进行反序列化,进行解码,读取数据对象的ID,结合对象字典获取传输对象。
该方法还包括预先根据待传输的数据对象自定义序列化和反序列化方法。
所述对象字典对待传输的全局数据对象进行定义,,为每一个数据对象分配唯一的ID,是对数据对象的不变量进行定义,所述数据对象的不变量为字段名称。
所述发送端的对象序列化单元对待传输的数据对象进行字节序列化转换为字节流,是对数据对象的变量转换成字节流,所述数据对象的变量为动态变化的字段值。
所述接收端的对象反序列化单元对接收到的字节流进行反序列化,是将接收到的字节流转换成数据对象的变量。
发送端将字节流按固定顺序写入到发送端预定义缓存中,并将数据对象的ID写入到发送端预定义缓存的头部。
接收端将接收到的字节流存储到接收端预定义缓存中后,从接收端预定义缓存的头部读取数据对象的ID,根据全局字典获取传输对象,并从接收端预定义缓存中按顺序读取数据对象的变量值并逐个赋值给数据对象的变量。
本发明设计科学,过程简单,在网络传输数据对象时,仅传输数据对象动态变化的字段值,减少固定不变的字段名称的传输,大大提高了数据对象传输过程中的数据传输效率,降低了网络传输吞吐,提升业务模块在处理数据对象序列化和反序列化过程中的速度。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本领域技术的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (8)
1.一种基于字节序列化和反序列化的数据对象的传输系统,包括:
对象字典,用于对待传输的全局数据对象进行定义,为每一个数据对象分配唯一的ID;
发送端,与对象字典相连,从对象字典查询数据对象的ID,且所述发送端具有对象序列化单元,用于对待传输的数据对象进行字节序列化转换为字节流,进行编码,并通过网络传输进行数据传送;
接收端,与对象字典相连,通过网络传输进行数据接收,且所述接收端具有对象反序列化单元,用于将接收到的网络传输的字节流进行反序列化,进行解码,读取数据对象的ID,结合对象字典获取传输对象。
2.根据权利要求1所述的基于字节序列化和反序列化的数据对象的传输系统,其特征在于,其中所述对象序列化单元的对象序列化方法和对象反序列化单元的对象反序列化方法为根据待传输的数据对象自定义。
3.根据权利要求1所述的基于字节序列化和反序列化的数据对象的传输系统,其特征在于,
其中所述对象字典对待传输的全局数据对象进行定义,为每一个数据对象分配唯一的ID,是对数据对象的不变量进行定义,所述数据对象的不变量为字段名称;
所述发送端的对象序列化单元对待传输的数据对象进行字节序列化转换为字节流,是对数据对象的变量转换成字节流,所述数据对象的变量为动态变化的字段值;
所述接收端的对象反序列化单元对接收到的字节流进行反序列化,是将接收到的字节流转换成数据对象的变量。
4.根据权利要求3所述的基于字节序列化和反序列化的数据对象的传输系统,其特征在于,
发送端将字节流按固定顺序写入到发送端预定义缓存中,并将数据对象的ID写入到发送端预定义缓存的头部;
接收端将接收到的字节流存储到接收端预定义缓存中后,从接收端预定义缓存的头部读取数据对象的ID,根据全局字典获取传输对象,并从接收端预定义缓存中按顺序读取数据对象的变量值并逐个赋值给数据对象的变量。
5.一种基于字节序列化和反序列化的数据对象的传输方法,包括:
对象字典对待传输的全局数据对象进行定义,为每一个数据对象分配唯一的ID;
发送端从对象字典查询数据对象的ID,且发送端的对象序列化单元对待传输的数据对象进行字节序列化转换为字节流,进行编码,并通过网络传输进行数据传送;
接收端的对象反序列化单元对接收到的网络传输的字节流进行反序列化,进行解码,读取数据对象的ID,结合对象字典获取传输对象。
6.根据权利要求5所述的基于字节序列化和反序列化的数据对象的传输方法,其特征在于,还包括根据待传输的数据对象自定义序列化和反序列化方法。
7.根据权利要求5所述的基于字节序列化和反序列化的数据对象的传输方法,其特征在于,
其中所述对象字典对待传输的全局数据对象进行定义,,为每一个数据对象分配唯一的ID,是对数据对象的不变量进行定义,所述数据对象的不变量为字段名称;
所述发送端的对象序列化单元对待传输的数据对象进行字节序列化转换为字节流,是对数据对象的变量转换成字节流,所述数据对象的变量为动态变化的字段值;
所述接收端的对象反序列化单元对接收到的字节流进行反序列化,是将接收到的字节流转换成数据对象的变量。
8.根据权利要求7所述的基于字节序列化和反序列化的数据对象的传输方法,其特征在于,
发送端将字节流按固定顺序写入到发送端预定义缓存中,并将数据对象的ID写入到发送端预定义缓存的头部;
接收端将接收到的字节流存储到接收端预定义缓存中后,从接收端预定义缓存的头部读取数据对象的ID,根据全局字典获取传输对象,并从接收端预定义缓存中按顺序读取数据对象的变量值并逐个赋值给数据对象的变量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810952583.6A CN110855727A (zh) | 2018-08-21 | 2018-08-21 | 基于字节序列化和反序列化的数据对象的传输系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810952583.6A CN110855727A (zh) | 2018-08-21 | 2018-08-21 | 基于字节序列化和反序列化的数据对象的传输系统和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110855727A true CN110855727A (zh) | 2020-02-28 |
Family
ID=69595092
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810952583.6A Pending CN110855727A (zh) | 2018-08-21 | 2018-08-21 | 基于字节序列化和反序列化的数据对象的传输系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110855727A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112612427A (zh) * | 2020-12-30 | 2021-04-06 | 北京优挂信息科技有限公司 | 一种车辆停靠点数据处理方法、装置、存储介质及终端 |
CN116208623A (zh) * | 2023-05-04 | 2023-06-02 | 腾讯科技(深圳)有限公司 | 信息同步方法、装置、引擎服务器及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030191803A1 (en) * | 2002-04-09 | 2003-10-09 | Sun Microsystems, Inc. | Methods, systems and articles of manufacture for providing an extensible serialization framework for an XML based RPC computing environment |
CN103778248A (zh) * | 2014-02-18 | 2014-05-07 | 成都致云科技有限公司 | 高效自描述的复杂数据对象序列化方法 |
CN104077335A (zh) * | 2013-05-07 | 2014-10-01 | 腾讯科技(深圳)有限公司 | 一种结构化数据的序列化、反序列化方法、装置和系统 |
CN106610922A (zh) * | 2015-10-26 | 2017-05-03 | 北京国双科技有限公司 | 反序列化方法及装置 |
CN107341262A (zh) * | 2017-07-14 | 2017-11-10 | 上海达梦数据库有限公司 | 数据库中对象类型列的序列化、反序列化方法及装置 |
-
2018
- 2018-08-21 CN CN201810952583.6A patent/CN110855727A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030191803A1 (en) * | 2002-04-09 | 2003-10-09 | Sun Microsystems, Inc. | Methods, systems and articles of manufacture for providing an extensible serialization framework for an XML based RPC computing environment |
CN104077335A (zh) * | 2013-05-07 | 2014-10-01 | 腾讯科技(深圳)有限公司 | 一种结构化数据的序列化、反序列化方法、装置和系统 |
CN103778248A (zh) * | 2014-02-18 | 2014-05-07 | 成都致云科技有限公司 | 高效自描述的复杂数据对象序列化方法 |
CN106610922A (zh) * | 2015-10-26 | 2017-05-03 | 北京国双科技有限公司 | 反序列化方法及装置 |
CN107341262A (zh) * | 2017-07-14 | 2017-11-10 | 上海达梦数据库有限公司 | 数据库中对象类型列的序列化、反序列化方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112612427A (zh) * | 2020-12-30 | 2021-04-06 | 北京优挂信息科技有限公司 | 一种车辆停靠点数据处理方法、装置、存储介质及终端 |
CN116208623A (zh) * | 2023-05-04 | 2023-06-02 | 腾讯科技(深圳)有限公司 | 信息同步方法、装置、引擎服务器及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106354568A (zh) | 一种不同进程间的通信方法及通信装置 | |
US8332539B2 (en) | Binary data serialization system using machine dependant data alignment | |
CN106302103B (zh) | 一种信息处理方法及其系统、应用服务器 | |
WO2021042840A1 (zh) | 数据处理方法、装置、服务器和计算机可读存储介质 | |
CN111625738B (zh) | App目标页面的唤起方法、装置、设备和存储介质 | |
CN110287040B (zh) | 一种远程调用服务框架的实现系统 | |
CN108170538B (zh) | 一种信息处理方法、装置以及电子设备 | |
CN110855727A (zh) | 基于字节序列化和反序列化的数据对象的传输系统和方法 | |
CN113316124A (zh) | 车机互联方法和装置 | |
CN110830427A (zh) | 一种netty环境下的消息编码、消息解码的方法和装置 | |
CN111858747A (zh) | 将MySQL数据库同步到Elasticsearch的方法 | |
CN101567873A (zh) | 一种多任务并行处理方法及系统 | |
CN111625244B (zh) | 基于3gpp协议的asn.1-per动静态编解码方法 | |
CN114040018A (zh) | 一种基于json数据格式的数据收发方法及装置 | |
CN116185499B (zh) | 寄存器数据传输方法、寄存器缓存模块、智能设备和介质 | |
CN107643906B (zh) | 数据处理方法及装置 | |
CN116561202A (zh) | 一种对象序列化处理的方法和装置 | |
CN113377363B (zh) | 对多种电控端私有协议自动生成源代码的云端实现方法 | |
CN115167869A (zh) | 一种Java对象序列化和反序列化的方法、电子设备及介质 | |
JPH06301655A (ja) | 分散処理システム | |
CN110442442B (zh) | 核电厂dcs平台工程师站软件维护网络通讯方法 | |
CN109413137A (zh) | 一种基于avro的PHP请求Python的方法 | |
CN109213710B (zh) | 高速串行接口装置与其数据传输方法 | |
CN105099571A (zh) | 一种音频通信方法 | |
CN118227343B (zh) | 一种数据处理方法、系统、装置、设备、介质及产品 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200228 |