CN112333256B - 一种工业物联网下网络传输时数据转化框架系统及其方法 - Google Patents
一种工业物联网下网络传输时数据转化框架系统及其方法 Download PDFInfo
- Publication number
- CN112333256B CN112333256B CN202011171127.1A CN202011171127A CN112333256B CN 112333256 B CN112333256 B CN 112333256B CN 202011171127 A CN202011171127 A CN 202011171127A CN 112333256 B CN112333256 B CN 112333256B
- Authority
- CN
- China
- Prior art keywords
- network transmission
- attribute
- industrial internet
- transmission under
- data conversion
- 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.)
- Active
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/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/04—Protocols for data compression, e.g. ROHC
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Computer Security & Cryptography (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Information Transfer Between Computers (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种工业物联网下网络传输时数据转化框架系统及其方法,系统包括基本类型编码器和引用类型编码器,所述的基本类型编码器包括byteOr、charOr、shortOr、intOr、longOr、floatOr、doubleOr、booleanOr以及stringOr;方法采用类型和值分离编码的方式,包括属性类型的转化和属性值的转化。该工业物联网下网络传输时数据转化框架系统及其方法,通过对象的空属性不编码,非空属性采用缓存、压缩的方法,解决转为的01串的码流太大的问题;通过采用类型和值分离编码的方式,解决性能低、耗时多的问题。
Description
技术领域
本发明涉及工业物联网的技术领域,尤其是一种工业物联网下网络传输时数据转化框架系统及其方法。
背景技术
在工业物联网下,方法调用有方法名和方法参数,这些可能是字符串,java的类,但是在网络上传输时或者保存在硬盘中时,网络或硬盘并不认得什么字符串或者javabean,网络或硬盘只认得二进制的01串。
JDK提供了数据网络传输和数据持久化的框架。数据网络传输:把java的类转为01串,进行网络传输;数据持久化:网络传输后要进行实际调用,再把二进制的01串变回实际的java的类,把对象保存到数据库。但是JDK提供的解决该问题的方法存在两个问题:一、转为的01串的码流太大,0101010101....会很多;二、性能低,耗时多。
发明内容
本发明要解决的技术问题是:为了解决上述背景技术中存在的问题,提供一种工业物联网下网络传输时数据转化框架系统及其方法,实现了数据网络传输和数据持久化的框架,减少了01串的码流以及减少了转化过程的耗时,从而加快整个系统的响应速度以及减少网络传输中的数据流量的开销。
本发明解决其技术问题所采用的技术方案是:一种工业物联网下网络传输时数据转化框架系统,包括基本类型编码器和引用类型编码器,所述的基本类型编码器包括byteOr、charOr、shortOr、intOr、longOr、floatOr、doubleOr、booleanOr以及stringOr;采用类型和值分离编码的方式,包括属性类型的转化和属性值的转化;所述的属性值的转化,具体如下:一、当发现属性对应的值为一个具体的值时,则将类型+值转为计算机能直接识别的“010101...”串;当发现属性对应的值为空时,则删除该属性的01串;二、把已经编码过的对象保存到缓存中;三、把属性值超过4字节的进行压缩。
进一步具体地说,上述技术方案中,所述的引用类型编码器采用的是自定义引用类型编码器。
一种工业物联网下网络传输时数据转化框架系统的方法,所述的属性类型的转化,具体如下:一、基本类型编码器:byte、char、short、int、long、float、double、boolean以及string这些基本类型对应的编码器是byteOr、charOr、shortOr、intOr、longOr、floatOr、doubleOr、booleanOr以及stringOr;二、引用类型编码器:当自定义引用类型时,则返回的编码器为Default$FieldOr,然后利用反射机制从Student类中一个字段一个字段去转化,直到最终完成。
进一步具体地说,上述技术方案中,所述的基本类型编码器的名称和在网络传输中的01串会以key value的形式保存在map的数据结构中。
进一步具体地说,上述技术方案中,当需要基本类型编码器的名称和在网络传输中的01串时,直接根据key值取出相应的结果即可。
进一步具体地说,上述技术方案中,所述的基本类型和自定义引用类型采用可变长度字节存储。
进一步具体地说,上述技术方案中,在属性值的转化中,通过特殊编码方式GZIP来保存数据。
进一步具体地说,上述技术方案中,被压缩的数据可以解压缩,解压缩是将被压缩的数据从特殊编码方式GZIP还原为原始数据。
本发明的有益效果是:本发明的一种工业物联网下网络传输时数据转化框架系统及其方法具有以下优点:
一、通过对象的空属性不编码,非空属性采用缓存、压缩的方法,解决了转为的01串的码流太大的问题,达到码流小的效果;
二、通过采用类型和值分离编码的方式,解决了性能低、耗时多的问题,达到性能高、耗时少的效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的原理图。
具体实施方式
为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
见图1,一种工业物联网下网络传输时数据转化框架系统,包括基本类型编码器和引用类型编码器。
基本类型编码器包括byteOr、charOr、shortOr、intOr、longOr、floatOr、doubleOr、booleanOr以及stringOr。
其中,string为字段类型(字符类型)。
另外,byte、char、short、int、long、float、double、boolean对应的是java中的八大基本数据类型。
八大基本数据类型又可以分为字符类型、布尔类型和数值类型三类。char为字符类型,boolean为布尔类型,byte、short、int、long、float以及double为数值类型。数值类型又可以分为整数类型和浮点数类型,byte、short、int和long为整数类型,float和double为浮点数类型。
八大基本数据类型的名称、位数、默认值以及取值范围如下表所示:
序号 | 数据类型 | 位数 | 默认值 | 取值范围 |
1 | byte(位) | 8 | 0 | -2^7-2^7-1 |
2 | short(短整数) | 16 | 0 | -2^15-2^15-1 |
3 | int(整数) | 32 | 0 | -2^31-2^31-1 |
4 | long(长整数) | 64 | 0 | -2^63-2^63-1 |
5 | float(单精度) | 32 | 0.0 | -2^31-2^31-1 |
6 | double(双精度) | 64 | 0.0 | -2^63-2^63-1 |
7 | char(字符) | 16 | 空 | 0-2^16-1 |
8 | boolean(布尔值) | 8 | false | true、false |
引用类型编码器采用的是自定义引用类型编码器。
举例说明,自定义Student(Student只是一个自定义引用类型的例子),Student的全限定名为com.wy.demo.Student,即com.wy.demo.Student是自定义引用类型Student的全限定名,其中com.wy.demo是包名。
引用类型的定义:指向一个对象,不是原始值,指向对象的变量是引用变量,引用变量指向的是JVM heap堆内存的地址。
一种工业物联网下网络传输时数据转化框架系统的方法,采用类型和值分离编码的方式,包括属性类型的转化和属性值的转化。
属性类型的转化,如private String name;private int age;等等,其中string和int就是字段类型,string和int就属于基本类型的编码器,具体如下:
一、基本类型编码器:byte、char、short、int、long、float、double、boolean以及string这些基本类型对应的编码器是byteOr、charOr、shortOr、intOr、longOr、floatOr、doubleOr、booleanOr以及stringOr;
二、引用类型编码器:当自定义引用类型时,例如(com.wy.demo.Student),则返回的编码器为Default$FieldOr,然后利用反射机制从Student类中一个字段一个字段(即是基本类型的编码器)去转化,直到最终完成。需要说明的是:凡是引用类型都是使用Default$FieldOr编码器。
属性值的转化,具体如下:
一、当发现属性对应的值为一个具体的值时,则将类型+值转为计算机能直接识别的“010101...”串。
如:属性对应的值private int age=20,则对20进行转化为01串。
当发现属性对应的值为空时,则会删除该属性的01串(没有具体的值是没有意义的传输),可以减少01串的码流的大小。
二、把已经编码过的对象保存到缓存中,该缓存可以是list缓存,也可以是redis缓存,避免同一个对象多次编码,造成性能的浪费。
三、把属性值比较大的进行压缩,该属性值有一个阈值,可以设置,默认超过4字节进行压缩。压缩比在40%左右,4个字节压缩后在1.6个字节左右。
压缩是通过一些有别于原始编码的特殊编码方式GZIP来保存数据,使数据占用的存储空间比较小。被压缩的数据可以解压缩,解压缩是将被压缩的数据从特殊编码方式GZIP还原为原始数据。
基本类型编码器的名称和在网络传输中的01串会以key value的形式保存在map的数据结构中,key value的方式能够快速找到这个类型的编码器对应的01串是什么。当需要基本类型编码器的名称和在网络传输中的01串时,直接根据key值取出相应的结果即可,这个是针对基本类型的编码器,是固定的这些:byteOr、charOr、shortOr、intOr、longOr、floatOr、doubleOr、booleanOr以及stringOr,为了提高效率才采用了预先转为01串存储到map中的,举例:如果需要编码string,就可以直接到map获取010101...。
基本类型和自定义引用类型采用可变长度字节存储,即对long,int等数据类型采用可变长度字节存储,来代替固定字节(8字节,4字节)的模式,因为对象的这些值基本上都是小值,能节省很多空间;使用了缓存的机制,相同的对象,只会编码一次。
另外,解释下可变长度:比如long num=2,在java中只要声明了long类型就是8个字节的内存开销,值2只有1个字节的大小,可变就是根据实际的值来划分内存大小。
本发明的一种工业物联网下网络传输时数据转化框架系统及其方法,通过对象的空属性不编码,非空属性采用缓存、压缩的方法,解决了转为的01串的码流太大的问题;通过采用类型和值分离编码的方式,解决了性能低、耗时多的问题。
当Student用JDK提供的方法编码,耗时1861ms,本发明进行编码耗时210ms。随着往Student添加属性,JDK的方法和本发明差距会越来越大。以上所述的,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
Claims (8)
1.一种工业物联网下网络传输时数据转化框架系统,其特征在于:包括基本类型编码器和引用类型编码器,所述的基本类型编码器包括byteOr、charOr、shortOr、intOr、longOr、floatOr、doubleOr、booleanOr以及stringOr;
采用类型和值分离编码的方式,包括属性类型的转化和属性值的转化;
所述的属性值的转化,具体如下:
一、当发现属性对应的值为一个具体的值时,则将类型+值转为计算机能直接识别的“010101...”串;当发现属性对应的值为空时,则删除该属性的01串;
二、把已经编码过的对象保存到缓存中;
三、把属性值超过4字节的进行压缩。
2.根据权利要求1所述的一种工业物联网下网络传输时数据转化框架系统,其特征在于:所述的引用类型编码器采用的是自定义引用类型编码器。
3.一种如权利要求1所述的工业物联网下网络传输时数据转化框架系统的方法,其特征在于:所述的属性类型的转化,具体如下:
一、基本类型编码器:byte、char、short、int、long、float、double、boolean以及string这些基本类型对应的编码器是byteOr、charOr、shortOr、intOr、longOr、floatOr、doubleOr、booleanOr以及stringOr;
二、引用类型编码器:当自定义引用类型时,则返回的编码器为Default$FieldOr,然后利用反射机制从Student类中一个字段一个字段去转化,直到最终完成。
4.根据权利要求3所述的一种工业物联网下网络传输时数据转化框架系统的方法,其特征在于:所述的基本类型编码器的名称和在网络传输中的01串会以key value的形式保存在map的数据结构中。
5.根据权利要求3所述的一种工业物联网下网络传输时数据转化框架系统的方法,其特征在于:当需要基本类型编码器的名称和在网络传输中的01串时,直接根据key值取出相应的结果即可。
6.根据权利要求3所述的一种工业物联网下网络传输时数据转化框架系统的方法,其特征在于:所述的基本类型和自定义引用类型采用可变长度字节存储。
7.根据权利要求3所述的一种工业物联网下网络传输时数据转化框架系统的方法,其特征在于:在属性值的转化中,通过特殊编码方式GZIP来保存数据。
8.根据权利要求7所述的一种工业物联网下网络传输时数据转化框架系统的方法,其特征在于:被压缩的数据可以解压缩,解压缩是将被压缩的数据从特殊编码方式GZIP还原为原始数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011171127.1A CN112333256B (zh) | 2020-10-28 | 2020-10-28 | 一种工业物联网下网络传输时数据转化框架系统及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011171127.1A CN112333256B (zh) | 2020-10-28 | 2020-10-28 | 一种工业物联网下网络传输时数据转化框架系统及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112333256A CN112333256A (zh) | 2021-02-05 |
CN112333256B true CN112333256B (zh) | 2022-02-08 |
Family
ID=74296369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011171127.1A Active CN112333256B (zh) | 2020-10-28 | 2020-10-28 | 一种工业物联网下网络传输时数据转化框架系统及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112333256B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016023471A1 (zh) * | 2014-08-11 | 2016-02-18 | 张锐 | 手写输入字符的处理、数据拆分和合并及编解码处理方法 |
CN110830164A (zh) * | 2019-10-22 | 2020-02-21 | 武汉理工光科股份有限公司 | 一种用于物联网设备通信的数据序列化方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2248522C (en) * | 1998-09-25 | 2002-01-29 | Ibm Canada Limited-Ibm Canada Limitee | Framework for representation and manipulation of record oriented data |
US7168063B2 (en) * | 2003-06-10 | 2007-01-23 | Microsoft Corporation | Systems and methods for employing tagged types in a dynamic runtime environment |
-
2020
- 2020-10-28 CN CN202011171127.1A patent/CN112333256B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016023471A1 (zh) * | 2014-08-11 | 2016-02-18 | 张锐 | 手写输入字符的处理、数据拆分和合并及编解码处理方法 |
CN110830164A (zh) * | 2019-10-22 | 2020-02-21 | 武汉理工光科股份有限公司 | 一种用于物联网设备通信的数据序列化方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112333256A (zh) | 2021-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5870036A (en) | Adaptive multiple dictionary data compression | |
US5955976A (en) | Data compression for use with a communications channel | |
CN1251151C (zh) | 压缩数据包的方法 | |
US7688233B2 (en) | Compression for deflate algorithm | |
CN112953550A (zh) | 数据压缩的方法、电子设备及存储介质 | |
CN112968706B (zh) | 数据压缩方法、fpga芯片及fpga在线升级方法 | |
US6225922B1 (en) | System and method for compressing data using adaptive field encoding | |
JPS6356726B2 (zh) | ||
CN101534124B (zh) | 一种用于短小自然语言的压缩算法 | |
WO2019236218A1 (en) | Dynamic dictionary-based data symbol encoding | |
EP1266455A1 (en) | Method and apparatus for optimized lossless compression using a plurality of coders | |
CN115189696A (zh) | 一种基于Huffman解码表的硬件压缩解压方法 | |
CN112333256B (zh) | 一种工业物联网下网络传输时数据转化框架系统及其方法 | |
CN101469989A (zh) | 一种手机网络导航中导航数据的压缩方法 | |
Mahmood et al. | An Efficient 6 bit Encoding Scheme for Printable Characters by table look up | |
Platoš et al. | Compression of small text files | |
Rathore et al. | A brief study of data compression algorithms | |
KR100494876B1 (ko) | 2바이트 문자 데이터 압축 방법 | |
Shanmugasundaram et al. | IIDBE: A lossless text transform for better compression | |
Jacob et al. | Comparative analysis of lossless text compression techniques | |
JPS5885629A (ja) | 圧縮符号化システム | |
CN111538730B (zh) | 一种基于哈希桶算法的数据统计的方法及其系统 | |
Ghuge | Map and Trie based Compression Algorithm for Data Transmission | |
Mahmood et al. | Efficient compression scheme for large natural text using zipf distribution | |
CN111866520A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |