CN109873831A - 一种数据传输的方法和*** - Google Patents
一种数据传输的方法和*** Download PDFInfo
- Publication number
- CN109873831A CN109873831A CN201910194292.XA CN201910194292A CN109873831A CN 109873831 A CN109873831 A CN 109873831A CN 201910194292 A CN201910194292 A CN 201910194292A CN 109873831 A CN109873831 A CN 109873831A
- Authority
- CN
- China
- Prior art keywords
- data
- order body
- transmitting terminal
- receiving end
- data volume
- 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.)
- Granted
Links
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类型等。
接口代码参考如下:
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类型等。
接口代码参考如下:
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 (12)
1.一种数据传输的方法,其特征在于,包括:
发送端对接收端发出的数据传输请求进行接收;
所述发送端基于所述数据传输请求生成数据传输对象,所述数据传输对象包括命令体和数据体;
所述发送端通过反射机制传输所述命令体,并通过流传输传输所述数据体;
接收端对所述命令体进行解析,根据解析结果将所述数据体进行写入。
2.根据权利要求1所述的方法,其特征在于,所述发送端基于所述数据传输请求生成数据传输对象时,将待传输所述接收端的数据体和既定格式的命令体进行封装。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括,所述发送端对所述命令体进行序列化处理,具体为:
通过重写面向对象编程语言Java的软件开发工具包jdk中的可写writable和可读readable接口实现所述命令体的序列化,便于数据传输。
4.根据权利要求1所述的方法,其特征在于,所述接收数据传输请求包括:
所述发送端采用套接字Socket通信方式接收所述数据传输请求。
5.根据权利要求1所述的方法,其特征在于,所述接收数据传输请求包括:
所述发送端通过线程池进行线程并发,接收所述数据传输请求。
6.根据权利要求1所述的方法,其特征在于,所述接收端对所述命令体进行解析,根据解析结果将所述数据体进行写入包括:
所述接收端对所述命令体进行反序列化,对所述数据体执行对应的写入操作。
7.一种数据传输的***,其特征在于,包括发送端和接收端,所述发送端包括:
接收模块,用于对接收端发出的数据传输请求进行接收;
生成模块,用于基于所述数据传输请求生成数据传输对象,所述数据传输对象包括命令体和数据体;
传输模块,用于通过反射机制传输所述命令体,并通过流传输传输所述数据体;
所述接收端包括:
解析模块,用于对所述命令体进行解析,根据解析结果将所述数据体进行写入。
8.根据权利要求7所述的***,其特征在于,所述生成模块用于基于所述数据传输请求生成数据传输对象时,将待传输所述接收端的数据体和既定格式的命令体进行封装。
9.根据权利要求7所述的***,其特征在于,所述发送端还包括序列化模块,用于对所述命令体进行序列化处理,具体为:通过重写面向对象编程语言Java的软件开发工具包jdk中的可写writable和可读readable接口实现所述命令体的序列化,便于数据传输。
10.根据权利要求7所述的***,其特征在于,所述接收模块用于采用套接字Socket通信方式接收所述数据传输请求。
11.根据权利要求7所述的***,其特征在于,所述接收模块用于通过线程池进行线程并发,接收所述数据传输请求。
12.根据权利要求7所述的***,其特征在于,所述解析模块用于对所述命令体进行反序列化,对所述数据体执行对应的写入操作。
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 true CN109873831A (zh) | 2019-06-11 |
CN109873831B 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 (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004252708A (ja) * | 2003-02-20 | 2004-09-09 | Hitachi Software Eng Co Ltd | オブジェクト値設定方法及びオブジェクト値設定プログラム |
US20050071342A1 (en) * | 2003-09-25 | 2005-03-31 | International Business Machines Corporation | Data processing for objects with unknown data structures |
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反射原理的工作流平台多接口事务链处理方法 |
-
2019
- 2019-03-14 CN CN201910194292.XA patent/CN109873831B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004252708A (ja) * | 2003-02-20 | 2004-09-09 | Hitachi Software Eng Co Ltd | オブジェクト値設定方法及びオブジェクト値設定プログラム |
US20050071342A1 (en) * | 2003-09-25 | 2005-03-31 | International Business Machines Corporation | Data processing for objects with unknown data structures |
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)
Title |
---|
JIE LIU: "Reflection Analysis for Java: Uncovering More Reflective Targets Precisely", 《2017 IEEE 28TH INTERNATIONAL SYMPOSIUM ON SOFTWARE RELIABILITY ENGINEERING (ISSRE)》 * |
孙立荣: "面向接口元数据信息获取的CORBA反射机制的研究与实现", 《中国优秀硕士学位论文全文数据库》 * |
Also Published As
Publication number | Publication date |
---|---|
CN109873831B (zh) | 2021-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111277616B (zh) | 一种基于rdma的数据传输方法和分布式共享内存*** | |
CN104731569B (zh) | 一种数据处理方法及相关设备 | |
WO2021042840A1 (zh) | 数据处理方法、装置、服务器和计算机可读存储介质 | |
CN103116520B (zh) | 基于tcp/ udp的远程过程调用rpc的方法 | |
CN107370796B (zh) | 一种基于Hyper TF的智能学习*** | |
US20150067695A1 (en) | Information processing system and graph processing method | |
US10609125B2 (en) | Method and system for transmitting communication data | |
CN112631788B (zh) | 数据传输方法及数据传输服务器 | |
CN103645994A (zh) | 一种数据处理方法及设备 | |
WO2022032984A1 (zh) | 一种mqtt协议仿真方法及仿真设备 | |
CN103414579A (zh) | 一种适用于云计算的跨平台监控***及其监控方法 | |
CN102810069A (zh) | 一种java对象的请求和响应方法、装置、***和终端 | |
US11474853B2 (en) | Storage device operation method and physical server | |
JP6498844B2 (ja) | コンピュータデバイス及びコンピュータデバイスによりデータを読み取る/書き込むための方法 | |
CN111404931B (zh) | 一种基于持久性内存的远程数据传输方法 | |
WO2023046141A1 (zh) | 一种数据库网络负载性能的加速框架、加速方法及设备 | |
CN110308986A (zh) | 基于优化调度的容器云上分布式训练数据通信的方法 | |
CN106131162B (zh) | 一种基于iocp机制实现网络服务代理的方法 | |
CN109669788A (zh) | 面向直接内存访问互连通信的多核芯片的mpi实现方法 | |
CN109951532B (zh) | 一种基于dpdk的流量模型自动变换装置 | |
CN109873831A (zh) | 一种数据传输的方法和*** | |
CN109218371B (zh) | 一种调用数据的方法和设备 | |
CN111984679B (zh) | 硬件加速数据库的访问方法、装置、主机、***及介质 | |
CN113835904A (zh) | 一种远程过程调用控制方法、装置、设备及存储介质 | |
CN108833519A (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 |