CN109873831B - 一种数据传输的方法和*** - Google Patents

一种数据传输的方法和*** Download PDF

Info

Publication number
CN109873831B
CN109873831B CN201910194292.XA CN201910194292A CN109873831B CN 109873831 B CN109873831 B CN 109873831B CN 201910194292 A CN201910194292 A CN 201910194292A CN 109873831 B CN109873831 B CN 109873831B
Authority
CN
China
Prior art keywords
data transmission
data
command
transmission request
command body
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
Application number
CN201910194292.XA
Other languages
English (en)
Other versions
CN109873831A (zh
Inventor
朱辉
李涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhengzhou Apas Technology Co ltd
Original Assignee
Zhuhai Tianyan Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhuhai Tianyan Technology Co ltd filed Critical Zhuhai Tianyan Technology Co ltd
Priority to CN201910194292.XA priority Critical patent/CN109873831B/zh
Publication of CN109873831A publication Critical patent/CN109873831A/zh
Application granted granted Critical
Publication of CN109873831B publication Critical patent/CN109873831B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本申请实施例提供了一种数据传输的方法和***,该方法包括:发送端对接收端发出的数据传输请求进行接收;所述发送端基于所述数据传输请求生成数据传输对象,所述数据传输对象包括命令体和数据体;所述发送端通过反射机制传输所述命令体,并通过流传输传输所述数据体;接收端对所述命令体进行解析,根据解析结果将所述数据体进行写入,通过流传输传输所述数据体,本申请实施例提供的一种数据传输的方法和***能够结合基于命令和基于数据的数据传输架构的优势,按统一带宽将目标数据传输至接收端,减小了分时传输造成的数据延迟、影响带宽等,提高了数据传输的效率。

Description

一种数据传输的方法和***
技术领域
本申请涉及数据处理技术领域,尤其涉及一种数据传输的方法和***。
背景技术
中后台中间件采用两种不同的数据或者命令架构进行远程通信。其中,基于命令通信:常见的框架技术包括dubbo、spring cloud、thrift、ICE等等;基于数据通信:常见的框架技术包括datax、hadoop pipe line等。
基于此,本发明的发明人发现,基于命令的通信架构对大规模数据传输的性能太低、基于数据的通信架构对命令交互易用性太差,两种通信架构各自有所欠缺。
公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。
发明内容
本申请实施例的目的是提供一种数据传输的方法和***,能够结合基于命令和基于数据的数据传输架构的优势。
为解决上述技术问题,本申请实施例是通过以下各方面实现的。
第一方面,本申请实施例提供了一种数据传输的方法,包括:发送端对接收端发出的数据传输请求进行接收;所述发送端基于所述数据传输请求生成数据传输对象,所述数据传输对象包括命令体和数据体;所述发送端通过反射机制传输所述命令体,通过流传输传输所述数据体;接收端对所述命令体进行解析,根据解析结果将所述数据体进行写入。
在一种可能的实现方式中,所述发送端基于所述数据传输请求生成数据传输对象时,将待传输所述接收端的数据体和既定格式的命令体进行封装。
在一种可能的实现方式中,所述方法还包括,所述发送端对所述命令体进行序列化处理,具体为:通过重写面向对象编程语言Java的软件开发工具包jdk中的可写writable和可读readable接口实现所述命令体的序列化,便于数据传输。
在一种可能的实现方式中,所述接收数据传输请求包括:所述发送端采用套接字Socket通信方式接收所述数据传输请求。
在一种可能的实现方式中,所述接收数据传输请求包括:所述发送端通过线程池进行线程并发,接收所述数据传输请求。
在一种可能的实现方式中,所述接收端对所述命令体进行解析,根据解析结果将所述数据体进行写入包括:所述接收端对所述命令体进行反序列化,对所述数据体执行对应的写入操作。
第二方面,本申请实施例提供了一种数据传输的***,包括发送端和接收端,所述发送端包括:接收模块,用于对接收端发出的数据传输请求进行接收;生成模块,用于基于所述数据传输请求生成数据传输对象,所述数据传输对象包括命令体和数据体;传输模块,用于通过反射机制传输所述命令体,并通过流传输传输所述数据体;所述接收端包括:解析模块,用于对所述命令体进行解析,根据解析结果将所述数据体进行写入。
所述生成模块用于基于所述数据传输请求生成数据传输对象时,将待传输所述接收端的数据体和既定格式的命令体进行封装。
在一种可能的实现方式中,所述发送端还包括序列化模块,用于对所述命令体进行序列化处理,具体为:通过重写面向对象编程语言Java的软件开发工具包jdk中的可写writable和可读readable接口实现所述命令体的序列化,便于数据传输。
在一种可能的实现方式中,所述接收模块用于采用套接字Socket通信方式接收所述数据传输请求。
在一种可能的实现方式中,所述接收模块用于通过线程池进行线程并发,接收所述数据传输请求。
在一种可能的实现方式中,所述解析模块用于对所述命令体进行反序列化,对所述数据体执行对应的写入操作。
第三方面,本申请实施例提供了一种电子设备,包括:存储器、处理器和存储在所述存储器上并可在所述处理器上运行的计算机可执行指令,所述计算机可执行指令被所述处理器执行时实现如上述第一方面所述的方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机可执行指令,所述计算机可执行指令被处理器执行时实现如上述第一方面所述的方法的步骤。
在本申请实施例中,通过发送端对接收端发出的数据传输请求进行接收;所述发送端基于所述数据传输请求生成数据传输对象,所述数据传输对象包括命令体和数据体;所述发送端通过反射机制传输所述命令体,并通过流传输传输所述数据体;接收端对所述命令体进行解析,根据解析结果将所述数据体进行写入,通过流传输传输所述数据体能够结合基于命令和基于数据的数据传输架构的优势,按统一带宽将目标数据传输至接收端,减小了分时传输造成的数据延迟、影响带宽等,提高了数据传输的效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示出本申请实施例提供的一种数据传输的方法的一种流程示意图;
图2示出本申请实施例提供的一种数据传输的方法的另一种流程示意图;
图3示出本申请实施例提供的一种数据传输的方法的另一种流程示意图;
图4示出本申请实施例提供的一种数据传输的***的结构示意图;
图5示出本申请实施例提供的一种数据传输的***的结构示意图;
图6示出执行本申请实施例提供的一种数据传输的方法的电子设备的硬件结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
图1示出本申请实施例提供的一种数据传输的方法的一种流程示意图,该方法可以由电子设备执行,例如终端设备或服务端设备。换言之,所述方法可以由安装在终端设备或服务端设备的软件或硬件来执行。所述服务端包括但不限于:单台服务器、服务器集群、云端服务器或云端服务器集群等。如图所示,该方法可以包括以下步骤。
S10:接收数据传输请求。
发送端对接收端发出的数据传输请求进行接收。终端可以作为发送端,服务器可以作为接收端。
实现服务器与终端之间的远程通信,使得服务器能够接收终端发送的数据传输请求,该数据传输请求是基于命令通信发送的。
S20:基于所述数据传输请求生成数据传输对象,所述数据传输对象包括命令体和数据体。
发送端基于所述数据传输请求生成数据传输对象,所述数据传输对象包括命令体和数据体
在一个数据传输对象中同时包括命令体和数据体。所述命令体包括:接口名、方法名、参数。
S30:发送端通过反射机制传输所述命令体,并通过流传输传输所述数据体。
S40:接收端对所述命令体进行解析,根据解析结果将所述数据体进行写入。
由此,本申请实施例提供的一种数据传输的方法,通过发送端对接收端发出的数据传输请求进行接收;所述发送端基于所述数据传输请求生成数据传输对象,所述数据传输对象包括命令体和数据体;所述发送端通过反射机制传输所述命令体,并通过流传输传输所述数据体;接收端对所述命令体进行解析,根据解析结果将所述数据体进行写入,能够结合基于命令和基于数据的数据传输架构的优势,按统一带宽将目标数据传输至接收端,减小了分时传输造成的数据延迟、影响带宽等,提高了数据传输的效率。在一次数据传输对象的传输中同时获得命令体和数据体,而无需分别基于两种传输机制分两次分别获得命令体和数据体,提高数据传输的效率。
图2示出本申请实施例提供的一种数据传输的方法的另一种流程示意图,该方法可以由电子设备执行,例如终端设备或服务端设备。换言之,所述方法可以由安装在终端设备或服务端设备的软件或硬件来执行。所述服务端包括但不限于:单台服务器、服务器集群、云端服务器或云端服务器集群等。如图所示,该方法可以包括以下步骤。
S10:接收数据传输请求。
发送端对接收端发出的数据传输请求进行接收。终端可以作为发送端,服务器可以作为接收端。
实现服务器与终端之间的远程通信,使得服务器能够接收终端发送的数据传输请求,该数据传输请求是基于命令通信发送的。
S20:基于所述数据传输请求生成数据传输对象,所述数据传输对象包括命令体和数据体。
发送端基于所述数据传输请求生成数据传输对象,所述数据传输对象包括命令体和数据体
在一个数据传输对象中同时包括命令体和数据体。所述命令体包括:接口名、方法名、参数。
在一种可能的实现方式中,所述发送端基于所述数据传输请求生成数据传输对象时,将待传输所述接收端的数据体和既定格式的命令体进行封装。
在一个数据传输对象中同时包括命令体和数据体。
S31:发送端对所述命令体进行序列化处理。
常见的序列化技术有下面几种:
1、Java原生序列化方法即通过Java原生流(InputStream和OutputStream之间的转化)的方式进行转化。JavaBean实体类实现Serializable接口。
2、Json序列化一般会使用jackson包,通过ObjectMapper类来进行一些操作,比如将对象转化为byte数组或者将json串转化为对象。通常将json作为服务器端返回的数据格式。比如调用一个服务器接口,通常的请求为xxx.json?a=xxx&b=xxx的形式。
3、fastjson性能较好的Java语言实现的Json解析器和生成器,速度快,功能强,完全支持java bean、集合、Map、日期、Enum,支持范型和自省。
4、ProtoBuff序列化对象可以很大程度上将其压缩,可以大大减少数据传输大小,提高***性能。对于大量数据的缓存,也可以提高缓存中数据存储量。
在一种可能的实现方式中,本步骤可以包括:通过重写面向对象编程语言Java的软件开发工具包jdk中的可写writable和可读readable接口实现所述命令体的序列化,便于数据传输。支持常见的数值、字符串、byte类型等。
接口代码参考如下:
Figure BDA0001995345840000071
S30:发送端通过反射机制传输所述命令体,并通过流传输传输所述数据体。
S40:接收端对所述命令体进行解析,根据解析结果将所述数据体进行写入。
判断是否存在流传输属性,判别如果存在流传输,则无须进行序列化,直接流对接即可。
由此,本申请实施例提供的一种数据传输的方法,通过发送端对接收端发出的数据传输请求进行接收;所述发送端基于所述数据传输请求生成数据传输对象,所述数据传输对象包括命令体和数据体;所述发送端通过反射机制传输所述命令体,并通过流传输传输所述数据体;接收端对所述命令体进行解析,根据解析结果将所述数据体进行写入,能够结合基于命令和基于数据的数据传输架构的优势,按统一带宽将目标数据传输至接收端,减小了分时传输造成的数据延迟、影响带宽等,提高了数据传输的效率。在一次数据传输对象的传输中同时获得命令体和数据体,而无需分别基于两种传输机制分两次分别获得命令体和数据体,提高数据传输的效率。
图3示出本申请实施例提供的一种数据传输的方法的另一种流程示意图,该方法可以由电子设备执行,例如终端设备或服务端设备。换言之,所述方法可以由安装在终端设备或服务端设备的软件或硬件来执行。所述服务端包括但不限于:单台服务器、服务器集群、云端服务器或云端服务器集群等。如图所示,该方法可以包括以下步骤。
S10:接收数据传输请求。
发送端对接收端发出的数据传输请求进行接收。终端可以作为发送端,服务器可以作为接收端。
实现服务器与终端之间的远程通信,使得服务器能够接收终端发送的数据传输请求,该数据传输请求是基于命令通信发送的。
在一种可能的实现方式中,发送端可以采用套接字Socket通信方式接收所述数据传输请求。
在一种可能的实现方式中,可以通过线程池接收所述数据传输请求。
BIO(英文:blocking input and output),即阻塞IO(英文:input and output),在基于Socket的消息通信过程中,Socket服务端向外部提供服务,而Socket客户端可以建立到Socket服务端的连接,进而发送请求数据,然后等待Socket服务端处理,并返回处理结果(响应)。基于BIO的通信,Socket服务端会发生阻塞,即在监听过程中每次accept到一个客户端的Socket连接,就要处理这个请求,而此时其他连接过来的客户端只能阻塞等待。可见,这种模式下Socket服务端的处理能力是非常有限的,客户端也只能等待,直到服务端空闲时进行请求的处理。所以为了解决该问题,服务端可以采用线程池的处理方式。线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中。如果某个线程在托管代码中空闲(如正在等待某个事件),则线程池将***另一个辅助线程来使所有处理器保持繁忙。如果所有线程池线程都始终保持繁忙,但队列中包含挂起的工作,则线程池将在一段时间后创建另一个辅助线程但线程的数目永远不会超过最大值。超过最大值的线程可以排队,但要等到其他线程完成后才启动。由此,进一步提高数据传输的效率。
S20:基于所述数据传输请求生成数据传输对象,所述数据传输对象包括命令体和数据体。
发送端基于所述数据传输请求生成数据传输对象,所述数据传输对象包括命令体和数据体
在一个数据传输对象中同时包括命令体和数据体。所述命令体包括:接口名、方法名、参数。
在一种可能的实现方式中,所述发送端基于所述数据传输请求生成数据传输对象时,将待传输所述接收端的数据体和既定格式的命令体进行封装。
在一个数据传输对象中同时包括命令体和数据体。
S31:发送端对所述命令体进行序列化处理。
常见的序列化技术有下面几种:
1、Java原生序列化方法即通过Java原生流(InputStream和OutputStream之间的转化)的方式进行转化。JavaBean实体类实现Serializable接口。
2、Json序列化一般会使用jackson包,通过ObjectMapper类来进行一些操作,比如将对象转化为byte数组或者将json串转化为对象。通常将json作为服务器端返回的数据格式。比如调用一个服务器接口,通常的请求为xxx.json?a=xxx&b=xxx的形式。
3、fastjson性能较好的Java语言实现的Json解析器和生成器,速度快,功能强,完全支持java bean、集合、Map、日期、Enum,支持范型和自省。
4、ProtoBuff序列化对象可以很大程度上将其压缩,可以大大减少数据传输大小,提高***性能。对于大量数据的缓存,也可以提高缓存中数据存储量。
在一种可能的实现方式中,本步骤可以包括:通过重写面向对象编程语言Java的软件开发工具包jdk中的可写writable和可读readable接口实现所述命令体的序列化传输。支持常见的数值、字符串、byte类型等。
接口代码参考如下:
Figure BDA0001995345840000101
S30:发送端通过反射机制传输所述命令体,并通过流传输传输所述数据体。
S40:接收端对所述命令体进行解析,根据解析结果将所述数据体进行写入。
本步骤可以包括以下步骤。
S41:接收端对所述命令体进行反序列化。
所述接收端需要对所述命令体进行反序列化处理,根据序列化的字节流中所保存的对象状态及描述信息,通过反序列化重建传输对象。
S42:对所述数据体执行对应的写入操作。
由此,本申请实施例提供的一种数据传输的方法,通过发送端对接收端发出的数据传输请求进行接收;所述发送端基于所述数据传输请求生成数据传输对象,所述数据传输对象包括命令体和数据体;所述发送端通过反射机制传输所述命令体,并通过流传输传输所述数据体;接收端对所述命令体进行解析,根据解析结果将所述数据体进行写入,能够结合基于命令和基于数据的数据传输架构的优势,按统一带宽将目标数据传输至接收端,减小了分时传输造成的数据延迟、影响带宽等,提高了数据传输的效率。在一次数据传输对象的传输中同时获得命令体和数据体,而无需分别基于两种传输机制分两次分别获得命令体和数据体,提高数据传输的效率。
图4示出本申请实施例提供的一种数据传输的***的结构示意图,该***包括发送端10和接收端20,发送端10包括:接收模块110、生成模块120和传输模块130。
接收模块110用于对接收端发出的数据传输请求进行接收。生成模块120用于基于所述数据传输请求生成数据传输对象,所述数据传输对象包括命令体和数据体。传输模块130用于通过反射机制传输所述命令体,并通过流传输传输所述数据体。
接收端20包括:解析模块210用于对所述命令体进行解析,根据解析结果将所述数据体进行写入。
在一种可能的实现方式中,生成模块120用于基于所述数据传输请求生成数据传输对象时,将待传输所述接收端的数据体和既定格式的命令体进行封装。
由此,本申请实施例提供的一种数据传输的***,通过发送端对接收端发出的数据传输请求进行接收;所述发送端基于所述数据传输请求生成数据传输对象,所述数据传输对象包括命令体和数据体;所述发送端通过反射机制传输所述命令体,并通过流传输传输所述数据体;接收端对所述命令体进行解析,根据解析结果将所述数据体进行写入,能够结合基于命令和基于数据的数据传输架构的优势,按统一带宽将目标数据传输至接收端,减小了分时传输造成的数据延迟、影响带宽等,提高了数据传输的效率。在一次数据传输对象的传输中同时获得命令体和数据体,而无需分别基于两种传输机制分两次分别获得命令体和数据体,提高数据传输的效率。
图5示出本申请实施例提供的一种数据传输的***的结构示意图,该***包括发送端10和接收端20,发送端10包括:接收模块110、生成模块120、传输模块130和序列化模块140。
接收模块110用于对接收端发出的数据传输请求进行接收。生成模块120用于基于所述数据传输请求生成数据传输对象,所述数据传输对象包括命令体和数据体。传输模块130,用于通过反射机制传输所述命令体,并通过流传输传输所述数据体。
接收端20包括:解析模块210,用于对所述命令体进行解析,根据解析结果将所述数据体进行写入。
在一种可能的实现方式中,生成模块120用于基于所述数据传输请求生成数据传输对象时,将待传输所述接收端的数据体和既定格式的命令体进行封装。
在一种可能的实现方式中,发送端10还包括序列化模块140,用于对所述命令体进行序列化处理,具体为:通过重写面向对象编程语言Java的软件开发工具包jdk中的可写writable和可读readable接口实现所述命令体的序列化,便于数据传输。
在一种可能的实现方式中,所述接收模块110用于采用套接字Socket通信方式接收所述数据传输请求。
在一种可能的实现方式中,所述接收模块110用于通过线程池进行线程并发,接收所述数据传输请求。
在一种可能的实现方式中,所述解析模块210用于对所述命令体进行反序列化,对所述数据体执行对应的写入操作。
本申请实施例提供的该***,可执行前文方法实施例中所述的各方法,并实现前文方法实施例中所述的各方法的功能和有益效果,在此不再赘述。
图6示出执行本申请实施例提供的一种数据传输的方法的电子设备的硬件结构示意图,本申请实施例所述的发送端和接收端可以由具有相同或相似结构的电子设备执行,如图所示,该电子设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器701和存储器702,存储器702中可以存储有一个或一个以上存储应用程序或数据。其中,存储器702可以是短暂存储或持久存储。存储在存储器702的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对该电子设备中的一系列计算机可执行指令。更进一步地,处理器701可以设置为与存储器702通信,在该电子设备上执行存储器702中的一系列计算机可执行指令。该电子设备还可以包括一个或一个以上电源703,一个或一个以上有线或无线网络接口704,一个或一个以上输入输出接口705,一个或一个以上键盘706等。
在一个具体的实施例中,该电子设备包括存储器、处理器和存储在所述存储器上并可在所述处理器上运行的计算机可执行指令,所述计算机可执行指令被所述处理器执行时实现以下流程:发送端对接收端发出的数据传输请求进行接收;所述发送端基于所述数据传输请求生成数据传输对象,所述数据传输对象包括命令体和数据体;所述发送端通过反射机制传输所述命令体,通过流传输传输所述数据体;接收端对所述命令体进行解析,根据解析结果将所述数据体进行写入。
在一种可能的实现方式中,所述发送端基于所述数据传输请求生成数据传输对象时,将待传输所述接收端的数据体和既定格式的命令体进行封装。
在一种可能的实现方式中,所述方法还包括,所述发送端对所述命令体进行序列化处理,具体为:通过重写面向对象编程语言Java的软件开发工具包jdk中的可写writable和可读readable接口实现所述命令体的序列化,便于数据传输。
在一种可能的实现方式中,所述接收数据传输请求包括:所述发送端采用套接字Socket通信方式接收所述数据传输请求。
在一种可能的实现方式中,所述接收数据传输请求包括:所述发送端通过线程池进行线程并发,接收所述数据传输请求。
在一种可能的实现方式中,所述接收端对所述命令体进行解析,根据解析结果将所述数据体进行写入包括:所述接收端对所述命令体进行反序列化,对所述数据体执行对应的写入操作。
由此,执行本申请实施例提供的一种数据传输的方法的电子设备可执行前文方法实施例中所述的各方法,并实现前文方法实施例中所述的各方法的功能和有益效果,在此不再赘述。
本申请实施例的电子设备以多种形式存在,包括但不限于以下设备。
服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、***总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。其他具有数据交互功能的电子装置。
进一步地,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机可执行指令,所述计算机可执行指令被处理器执行时实现以下流程:发送端对接收端发出的数据传输请求进行接收;所述发送端基于所述数据传输请求生成数据传输对象,所述数据传输对象包括命令体和数据体;所述发送端通过反射机制传输所述命令体,通过流传输传输所述数据体;接收端对所述命令体进行解析,根据解析结果将所述数据体进行写入。
在一种可能的实现方式中,所述发送端基于所述数据传输请求生成数据传输对象时,将待传输所述接收端的数据体和既定格式的命令体进行封装。
在一种可能的实现方式中,所述方法还包括,所述发送端对所述命令体进行序列化处理,具体为:通过重写面向对象编程语言Java的软件开发工具包jdk中的可写writable和可读readable接口实现所述命令体的序列化,便于数据传输。
在一种可能的实现方式中,所述接收数据传输请求包括:所述发送端采用套接字Socket通信方式接收所述数据传输请求。
在一种可能的实现方式中,所述接收数据传输请求包括:所述发送端通过线程池进行线程并发,接收所述数据传输请求。
在一种可能的实现方式中,所述接收端对所述命令体进行解析,根据解析结果将所述数据体进行写入包括:所述接收端对所述命令体进行反序列化,对所述数据体执行对应的写入操作。
由此,所述计算机可执行指令被处理器执行时能够执行前文方法实施例中所述的各方法,并实现前文方法实施例中所述的各方法的功能和有益效果,在此不再赘述。
其中,所述的计算机可读存储介质包括只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
进一步地,本申请实施例还提供了一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,实现以下流程:发送端对接收端发出的数据传输请求进行接收;所述发送端基于所述数据传输请求生成数据传输对象,所述数据传输对象包括命令体和数据体;所述发送端通过反射机制传输所述命令体,通过流传输传输所述数据体;接收端对所述命令体进行解析,根据解析结果将所述数据体进行写入。
在一种可能的实现方式中,所述发送端基于所述数据传输请求生成数据传输对象时,将待传输所述接收端的数据体和既定格式的命令体进行封装。
在一种可能的实现方式中,所述方法还包括,所述发送端对所述命令体进行序列化处理,具体为:通过重写面向对象编程语言Java的软件开发工具包jdk中的可写writable和可读readable接口实现所述命令体的序列化,便于数据传输。
在一种可能的实现方式中,所述接收数据传输请求包括:所述发送端采用套接字Socket通信方式接收所述数据传输请求。
在一种可能的实现方式中,所述接收数据传输请求包括:所述发送端通过线程池进行线程并发,接收所述数据传输请求。
在一种可能的实现方式中,所述接收端对所述命令体进行解析,根据解析结果将所述数据体进行写入包括:所述接收端对所述命令体进行反序列化,对所述数据体执行对应的写入操作。
由此,执行本申请实施例提供的计算机程序产品能够执行前文方法实施例中所述的各方法,并实现前文方法实施例中所述的各方法的功能和有益效果,在此不再赘述。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种数据传输的方法,其特征在于,包括:
发送端对接收端发出的数据传输请求进行接收;
所述发送端基于所述数据传输请求生成数据传输对象,所述数据传输对象包括命令体和数据体;
所述发送端通过反射机制传输所述命令体,并通过流传输传输所述数据体;
接收端对所述命令体进行解析,根据解析结果将所述数据体进行写入;
所述命令体包括:接口名、方法名、参数;所述接收端对所述命令体进行解析,根据解析结果将所述数据体进行写入包括:所述接收端对所述命令体进行反序列化,对所述数据体执行对应的写入操作。
2.根据权利要求1所述的方法,其特征在于,所述发送端基于所述数据传输请求生成数据传输对象时,将待传输所述接收端的数据体和既定格式的命令体进行封装。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括,所述发送端对所述命令体进行序列化处理,具体为:
通过重写面向对象编程语言Java的软件开发工具包jdk中的可写writable和可读readable接口实现所述命令体的序列化,便于数据传输。
4.根据权利要求1所述的方法,其特征在于,所述接收数据传输请求包括:
所述发送端采用套接字Socket通信方式接收所述数据传输请求。
5.根据权利要求1所述的方法,其特征在于,所述接收数据传输请求包括:
所述发送端通过线程池进行线程并发,接收所述数据传输请求。
6.一种数据传输的***,其特征在于,包括发送端和接收端,所述发送端包括:
接收模块,用于对接收端发出的数据传输请求进行接收;
生成模块,用于基于所述数据传输请求生成数据传输对象,所述数据传输对象包括命令体和数据体;
传输模块,用于通过反射机制传输所述命令体,并通过流传输传输所述数据体;
所述接收端包括:
解析模块,用于对所述命令体进行解析,根据解析结果将所述数据体进行写入;
所述命令体包括:接口名、方法名、参数;所述解析模块具体用于对所述命令体进行反序列化,对所述数据体执行对应的写入操作。
7.根据权利要求6所述的***,其特征在于,所述生成模块用于基于所述数据传输请求生成数据传输对象时,将待传输所述接收端的数据体和既定格式的命令体进行封装。
8.根据权利要求6所述的***,其特征在于,所述发送端还包括序列化模块,用于对所述命令体进行序列化处理,具体为:通过重写面向对象编程语言Java的软件开发工具包jdk中的可写writable和可读readable接口实现所述命令体的序列化,便于数据传输。
9.根据权利要求6所述的***,其特征在于,所述接收模块用于采用套接字Socket通信方式接收所述数据传输请求。
10.根据权利要求6所述的***,其特征在于,所述接收模块用于通过线程池进行线程并发,接收所述数据传输请求。
CN201910194292.XA 2019-03-14 2019-03-14 一种数据传输的方法和*** Active CN109873831B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910194292.XA CN109873831B (zh) 2019-03-14 2019-03-14 一种数据传输的方法和***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910194292.XA CN109873831B (zh) 2019-03-14 2019-03-14 一种数据传输的方法和***

Publications (2)

Publication Number Publication Date
CN109873831A CN109873831A (zh) 2019-06-11
CN109873831B true CN109873831B (zh) 2021-07-23

Family

ID=66920523

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910194292.XA Active CN109873831B (zh) 2019-03-14 2019-03-14 一种数据传输的方法和***

Country Status (1)

Country Link
CN (1) CN109873831B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004252708A (ja) * 2003-02-20 2004-09-09 Hitachi Software Eng Co Ltd オブジェクト値設定方法及びオブジェクト値設定プログラム
CN103763357A (zh) * 2014-01-08 2014-04-30 兴天通讯技术(天津)有限公司 终端、服务器和基于tlv的远程调用方法
CN105391804A (zh) * 2015-12-16 2016-03-09 炫彩互动网络科技有限公司 一种可减少传输流量的远程调用方法
CN105843600A (zh) * 2016-02-29 2016-08-10 乐视体育文化产业发展(北京)有限公司 数据编辑方法、装置及***
CN108009011A (zh) * 2017-12-04 2018-05-08 科大国创软件股份有限公司 一种基于java反射原理的工作流平台多接口事务链处理方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050071342A1 (en) * 2003-09-25 2005-03-31 International Business Machines Corporation Data processing for objects with unknown data structures

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004252708A (ja) * 2003-02-20 2004-09-09 Hitachi Software Eng Co Ltd オブジェクト値設定方法及びオブジェクト値設定プログラム
CN103763357A (zh) * 2014-01-08 2014-04-30 兴天通讯技术(天津)有限公司 终端、服务器和基于tlv的远程调用方法
CN105391804A (zh) * 2015-12-16 2016-03-09 炫彩互动网络科技有限公司 一种可减少传输流量的远程调用方法
CN105843600A (zh) * 2016-02-29 2016-08-10 乐视体育文化产业发展(北京)有限公司 数据编辑方法、装置及***
CN108009011A (zh) * 2017-12-04 2018-05-08 科大国创软件股份有限公司 一种基于java反射原理的工作流平台多接口事务链处理方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Reflection Analysis for Java: Uncovering More Reflective Targets Precisely;Jie Liu;《2017 IEEE 28th International Symposium on Software Reliability Engineering (ISSRE)》;20171116;全文 *
面向接口元数据信息获取的CORBA反射机制的研究与实现;孙立荣;《中国优秀硕士学位论文全文数据库》;20070515;全文 *

Also Published As

Publication number Publication date
CN109873831A (zh) 2019-06-11

Similar Documents

Publication Publication Date Title
WO2021042840A1 (zh) 数据处理方法、装置、服务器和计算机可读存储介质
CN107493266B (zh) 嵌入式自助终端的通信***、方法及装置
CN110134534B (zh) 基于nio针对大数据分布式***进行消息处理优化的***及方法
US10942770B2 (en) Method, device and computer readable medium for analyzing and responding to a request corresponding to a GPU task
CN110716793B (zh) 一种分布式事务的执行方法、装置、设备及存储介质
US11108890B2 (en) Management client and device monitoring
CN113179227B (zh) 基于队列的at指令控制方法
WO2022032984A1 (zh) 一种mqtt协议仿真方法及仿真设备
CN112261142B (zh) 一种rdma网络的数据重传方法、装置及fpga
US8135851B2 (en) Object request broker for accelerating object-oriented communications and method
US20120166585A1 (en) Apparatus and method for accelerating virtual desktop
CN112688915A (zh) 跨协议通信方法、装置及服务器
CN112395097A (zh) 一种消息处理方法、装置、设备和存储介质
CN109873831B (zh) 一种数据传输的方法和***
CN112905357B (zh) 一种数据读取方法、***、电子设备及存储介质
CN116243983A (zh) 处理器、集成电路芯片、指令处理方法、电子设备和介质
CN111937366B (zh) Web请求处理方法和装置
KR20220124662A (ko) 데이터 처리 시스템, 방법, 장치, 전자 기기, 컴퓨터 판독 가능 저장 매체 및 컴퓨터 프로그램
CN113835904A (zh) 一种远程过程调用控制方法、装置、设备及存储介质
CN114338830A (zh) 数据传输方法、装置、计算机可读存储介质及计算机设备
CN113849449A (zh) 一种通信***和信息交互方法、设备和介质
EP1548591B1 (en) Method, apparatuses and instruction set for an accelerator for object-oriented communications
CN113347151B (zh) 一种基于socket共享内存的数据交互方法
WO2023203731A1 (ja) 演算処理オフロードシステム、演算処理オフロード方法およびプログラム
CN115514746B (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
TR01 Transfer of patent right

Effective date of registration: 20220803

Address after: No.16 and 17, unit 1, North District, Kailin center, No.51 Jinshui East Road, Zhengzhou area (Zhengdong), Henan pilot Free Trade Zone, Zhengzhou City, Henan Province, 450000

Patentee after: Zhengzhou Apas Technology Co.,Ltd.

Address before: E301-27, building 1, No.1, hagongda Road, Tangjiawan Town, Zhuhai City, Guangdong Province

Patentee before: ZHUHAI TIANYAN TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right