掌桥专利:专业的专利平台
掌桥专利
首页

一种数据传输方法以及相关装置

文献发布时间:2024-04-18 19:58:30


一种数据传输方法以及相关装置

技术领域

本申请实施例涉及计算机领域,尤其涉及一种数据传输方法以及相关装置。

背景技术

随着云计算技术的发展,设备之间能够通过网络传输数据从而获取设备所需要的云服务。例如,在云渲染的场景中,用户设备将需要将待渲染的数据通过网络传输至云服务器端,或者,云服务器端通过网络从其他云服务器获取渲染数据所需的外部资源。

用户设备在使用云服务过程中,用户设备需要将大量数据通过网络传输至云服务器进行处理。由于大量的数据通过网络传输时需要消耗很大的带宽,因此在传输带宽有限的情况下,用户设备在使用云服务过程中的数据传输效率低。

发明内容

本申请实施例提供了一种数据传输方法以及相关装置,用于提升数据传输效率。

本申请实施例第一方面提供一种数据传输方法,该方法可以由云服务平台执行,也可以由云服务平台的部件,例如云服务平台的处理器、芯片或芯片系统等执行,还可以由能实现全部或部分云服务平台功能的逻辑模块或软件实现。以云服务平台执行为例,第一方面提供的方法包括:云服务平台提供第一配置接口,第一配置接口用于接收第一设备发送的订购请求,订购请求包括计算资源的规格,计算资源用于缓存第一设备与第二设备传输过的数据,计算资源包括一个或多个加速单元。云服务平台接收数据传输请求,数据传输请求指示在第一设备和第二设备之间传输第一数据。云服务平台确定计算资源的缓存中存在第一数据,则读取第一数据。云服务平台根据数据传输请求,将第一数据发送给第一设备或第二设备。

本申请实施例中云服务平台能够为第一设备或者第二设备提供数据传输的加速服务,使得第一设备能够通过订购加速服务的方式加速数据传输过程,提升了第一设备获取数据传输加速服务的灵活性。进一步,云服务平台能够提供缓存空间存储在第一设备和第二设备之间传输过的第一数据,当第一设备或者第二设备再次传输第一数据时,可以直接从云平台的缓存中读取第一数据,从而提升第一设备和第二设备之间的数据传输速度。

一种可能的实施方式中,数据传输请求指示从第一设备发送第一数据至第二设备,数据传输请求包括第二设备的地址。云服务平台根据数据传输请求将第一数据发送给第二设备的过程中,云服务平台根据第二设备的地址将缓存中的第一数据发送至第二设备。具体的,在云渲染的场景中,第一数据包括第一设备需要第二设备进行云渲染的数据,当云服务平台确定缓存中存在第一数据,云服务平台根据第二设备的地址将缓存中的第一数据发送至第二设备。

本申请实施例中在第一设备向第二设备发送第一数据的场景中,云服务平台通过读取缓存中的第一数据发送至第二设备,从而提升第一设备向第二设备发送第一数据的速度,减少了数据传输过程中的带宽消耗。

一种可能的实施方式中,数据传输请求指示第一设备向第二设备请求第一数据。数据传输请求包括第二设备的地址。云服务平台根据数据传输请求将第一数据发送给第一设备或第二设备的过程中,云服务平台根据第一设备的地址将缓存中的第一数据发送至第一设备。具体的,在云渲染的场景中,第一数据包括第一设备需要从第二设备获取执云渲染任务所需的数据,当云服务平台确定缓存中存在第一数据,云服务平台根据第一设备的地址将缓存中的第一数据发送至第一设备。

本申请实施例中在第一设备向第二设备请求第一数据的场景中,云服务平台当云服务平台中缓存了第一数据时,通过读取缓存中的第一数据发送至第一设备,从而提升第一设备从第二设备获取第一数据的速度,减少了数据传输过程中的带宽消耗。

一种可能的实施方式中,数据传输请求包括第一数据的哈希值,云服务平台确定计算资源的缓存中存在第一数据的过程中,云服务平台确定数据重复性表中包括哈希值,数据重复性表用于指示已经缓存在云服务平台的数据,数据重复性表包括第一数据与哈希值的对应关系。具体的,云服务平台的数据代理单元确定数据重复性表中包括第一数据的哈希值时,云服务平台的数据代理单元向云服务平台的加速单元发送数据传输请求,该数据传输请求中包括第一数据的哈希值。

本申请实施例中当云服务平台确定数据重复性表中包括第一数据的哈希值时,云服务平台的数据代理单元向云服务平台的加速单元发送第一数据的哈希值,从而减少数据代理单元与加速单元之间的传输带宽,提升了数据传输速度。

一种可能的实施方式中,云服务平台的加速单元接收数据代理单元发送的数据传输请求之后,云服务平台根据数据传输请求中第一数据的哈希值读取缓存中的第一数据,并将第一数据发送给第一设备或第二设备。

本申请实施例云服务平台根据第一数据的哈希值读取缓存中的第一数据,从而提升本申请实施例中云服务平台读取第一数据的可实现性。

一种可能的实施方式中,云服务平台的数据代理单元向加速单元发送的数据传输请求之前,云服务平台的数据代理单元对第一数据执行分段操作,得到第一数据分块。数据代理单元计算第一数据分块的哈希值,并对哈希值相同的多个数据分块执行去重操作。去重操作之后,数据代理单元根据的第一数据分块的哈希值查询数据重复性表。当数据重复性表中未命中第一数据分块的哈希值,云服务平台的数据代理单元向云服务平台的加速单元发送第一数据分块。

本申请实施例中云服务平台能够根据对第一数据执行去重操作,并基于去重操作后的第一数据分块查询数据重复性表,从而减少了传输数据分块的数据,进一步提升了数据传输速度。

一种可能的实施方式中,当数据重复性表不包括哈希值时,云服务平台向第一设备返回第一数据传输响应,云服务平台接收第一设备发送的第一数据,并将第一数据存储至云服务平台的加速单元的缓存中,并更新数据重复性表;或者,当数据重复性表不包括哈希值时,云服务平台向第二设备返回第二数据传输响应,云服务平台接收第二设备发送的第一数据,并更新数据重复性表。

本申请实施例中数据重复性表不包括哈希值时,云服务平台向接收第一数据,并将第一数据存储至加速单元的缓存中并更新数据代理单元中的数据重复性表,从而使得云服务平台再次传输第一数据时,云服务平台可以提供数据传输加速服务。

一种可能的实施方式中,云服务平台在更新数据重复性表的过程中,云服务平台将第一数据存储至加速单元的缓存之后,加速单元向云服务平台的数据代理单元发送的通知消息,通知消息用于通知数据代理单元更新数据重复性表,数据重复性表用于指示已经缓存在加速单元的数据。

本申请实施例中云服务平台在缓存第一数据之后向数据代理单元发送通知消息,更新数据代理单元中的数据重复性表,提升方案了方案的可实现性。

一种可能的实施方式中,云服务平台接收第一设备的数据获取请求,所述数据获取请求指示从第二设备获取第二数据,云服务平台确定云服务器的加速单元中缓存有第二数据,将第二数据发送至所述第一设备。

本申请实施例中在第一设备向第二设备请求第二数据的场景中,当云服务平台中缓存了第二数据时,通过读取缓存中的第二数据发送至第一设备,从而提升第一设备从第二设备获取第二数据的速度,减少了数据传输过程中的带宽消耗。

本申请实施例第二方面提供了一种云服务平台,包括数据加速管理单元、数据代理单元和加速单元。其中,数据加速管理单元用于提供第一配置接口,第一配置接口用于接收第一设备发送的订购请求,订购请求包括计算资源的规格,计算资源用于缓存第一设备与第二设备传输过的数据。数据代理单元用于接收数据传输请求,数据传输请求指示在第一设备和第二设备之间传输第一数据。加速单元用于确定计算资源的缓存中存在第一数据,读取第一数据。加速单元还用于根据数据传输请求,将第一数据发送给第一设备或第二设备。

一种可能的实施方式中,数据传输请求指示从第一设备发送第一数据至第二设备,数据传输请求包括第二设备的地址,加速单元具体用于根据第二设备的地址,将缓存中的第一数据发送至第二设备。

一种可能的实施方式中,数据传输请求指示第一设备向第二设备请求第一数据,数据传输请求包括第一设备的地址。加速单元具体用于将缓存中的第一数据发送至第一设备。

一种可能的实施方式中,数据传输请求包括第一数据的哈希值,代理单元具体用于确定数据重复性表中包括哈希值,数据重复性表包括第一数据与哈希值的对应关系。

一种可能的实施方式中,加速单元具体用于接收第一数据的哈希值,根据第一数据的哈希值,将第一数据发送给第一设备或第二设备。

一种可能的实施方式中,数据代理单元具体还用于当数据重复性表不包括哈希值时,向第一设备返回第一数据传输响应,接收第一设备发送的第一数据,并更新数据重复性表;或者,当数据重复性表不包括哈希值时,向第二设备返回第二数据传输响应接收第二设备发送的第一数据,并更新数据重复性表。

本申请实施例第三方面还提供了一种云服务平台,包括处理器,处理器与存储器耦合,处理器用于存储指令,当指令被处理器执行时,以使得计算设备执行上述第一方面或者上述第一方面或者第一方面任意一种可能的实施方式所述的方法。

本申请实施例第四方面还一种计算机可读存储介质,其上存储有指令,指令被执行时,以使得计算机执行上述第一方面或者第一方面任意一种可能的实施方式所述的方法。

本申请实施例第五方面提供了一种计算机程序产品,计算机程序产品中包括指令,指令被执行时,以使得计算机实现上述第一方面或者第一方面任意一种可能的实施方式所述的方法。

可以理解,上述提供的任一种云服务平台、计算机可读介质或计算机程序产品等所能达到的有益效果可参考对应的方法中的有益效果,此处不再赘述。

附图说明

图1a为本申请实施例提供的一种数据传输系统的系统架构示意图;

图1b为本申请实施例提供的一种数据代理单元的不同实现形式的示意图;

图2为本申请实施例提供的一种数据传输方法的示意图;

图3为本申请实施例提供的另一种数据传输方法的示意图;

图4为本申请实施例提供的另一种数据传输方法的示意图;

图5为本申请实施例提供的一种云服务平台的逻辑架构示意图;

图6为本申请实施例提供的一种云服务平台的结构示意图。

具体实施方式

本申请实施例提供了一种数据传输方法以及相关装置,用于提升云服务的数据传输效率。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。

下面结合附图介绍本申请实施例提供的数据传输方法以及相关装置。

请参阅图1a,图1a为本申请实施例提供的一种数据传输系统的系统架构示意图。图1a所示,数据传输系统100包括数据加速管理单元101、加速单元102、数据代理单元103、第一设备104和第二设备105。其中加速单元102包括连接加速模块1021和外部访问加速模块1022。在数据传输系统100中,数据加速管理单元101、加速单元102和数据代理单元103组成云服务平台,该云服务平台为第一设备104提供数据传输加速服务。云服务平台中的数据加速管理单元101、加速单元102和数据代理单元103可以集成在云服务平台的一台服务器上,也可以是分布在的多台服务器上,具体不做限定。

需要说明的是,在一些场景下,云服务平台还包括第一设备104和第二设备105。例如,当第一设备104为用户设备,第二设备105为云服务器时,云服务器为用户设备提供云服务,此时云服务平台包括第二设备105。再例如,当第一设备104为云服务器,第二设备105为外部资源服务器时,云服务器向外部资源服务器请求提供云服务所需的外部数据,此时云服务平台则包括第一设备104。

在图1a所示的系统架构中,第一设备104可以向数据加速管理单元101订购数据传输加速服务,第一设备104订购数据传输加速服务之后,通过数据代理单元103和加速单元102向第二设备105发送数据,或者第一设备104也可以通过数据代理单元103向加速单元102请求获取第二设备105中的数据资源。

下面具体介绍图1a所示的数据传输系统中各个部分的功能。

数据加速管理单元101用于实现数据传输加速服务的订购以及加速单元的创建、部署等功能。具体的,数据加速管理单元101可以通过UI界面或者应用程序接口API为第一设备104提供数据传输加速的订购服务,数据加速管理单元101还能够根据订购请求创建加速单元102,并对加速单元102进行配置,配置的信息包括所属可用区(availability zone,AZ)、虚拟私有云(virtual private cloud,VPC)和子网等。

加速单元102用于实现数据传输加速的功能。具体的,加速单元102能够创建缓存从而实现传输数据的加速,创建缓存的方式包括基于哈希hash表构建缓存的方式或基于搜索树tree构建缓存的方式。加速单元102存在多种类型,例如,加速单元102可以是物理机、虚拟机或者容器。

加速单元102包括连接加速模块1021和外部访问加速模块1022。其中,连接加速模块1021和外部访问加速模块1022都具有数据分析模块和缓存模块,数据分析模块用于分析传输的数据是否满足缓存条件,缓存模块用于提供缓存空间实现数据传输加速。

连接加速模块1021可以为用户设备向云服务器发送数据的过程中提供数据传输加速服务。外部访问加速模块1022可以为云服务获取外部数据资源的过程中提供数据传输加速服务。连接加速模块1021与外部访问加速模块1022也可以是同一软件实例的两个功能模块,即加速单元102具有连接加速和外部访问加速的两种功能。

数据代理单元103用于向第一设备104提供数据传输代理功能,配合加速单元102实现减少重复数据的传输。数据代理单元103提供的数据传输代理功能包括数据分段、数据重复性查询以及数据传输功能。

需要说明的是,本申请实施例中数据代理单元103可以是软件工具包SDK的形式集成在第一设备104中,也可以是独立运行的代理服务器,具体不做限定。

请参阅图1b,图1b为本申请实施例中提供的数据代理单元的两种实现方式的示意图。如图1b所示,数据代理单元103可以SDK方式集成在第一设备104中,依附于第一设备104中的应用程序运行。数据代理单元103也可以代理服务器proxy的方式独立运行,当数据代理单元103通过proxy的方式独立运行时,数据代理单元103可以与多个第一设备相连接,为多个第一设备的应用程序提供数据传输加速服务。本申请实施例中数据代理单元103以proxy方式提供数据传输代理服务时,proxy方式包括http proxy、ftp proxy和socketproxy。

本申请实施例中第一设备104可以是用户设备或者云服务器,第二设备105可以是云服务器或者外部资源服务器。在本申请的一个示例中,第一设备102为用户设备,第二设备105为云服务器,用户设备通过代理单元103和加速单元102向云服务器发送数据,由云服务器对用户设备发送的数据执行处理任务,例如云数据渲染任务。

在本申请的另一个示例中,第一设备102为云服务器,第二设备105为外部资源服务器,云服务器需要从外部资源服务器获取数据时,云服务器通过加速单元102从外部资源服务器获取数据,例如,云服务器在执行云渲染的任务过程中需要从外部资源服务器获取云渲染任务所需要的数据资源。

请参阅图2,图2为本申请实施例提供的一种数据传输方法的流程示意图。图2所示的数据传输方法包括但不限于以下步骤:

201.第一设备向云服务平台发送订购请求,该订购请求包括计算资源的规格。

第一设备向云服务平台发送订购请求,订购请求包括计算资源的规格。计算资源用于缓存第一设备和第二设备之间传输过的数据,计算资源包括一个或者多个加速单元。订购请求中计算资源的规格包括下述的一种或多种:加速单元的规格和配置信息。其中,加速单元的规格可以是缓存大小或处理器核数等中的一项或多项,配置信息可以是需要将加速单元关联到的VPC信息或子网信息等中的一项或多项。

具体的,第一设备向云服务平台的加速服务管理单元发送订购请求,加速服务管理单元根据订购请求创建加速单元,该加速单元用于缓存第一设备与第二设备之间传输过的数据,传输过的数据包括第一设备通过加速单元向第二设备发送的数据,以及第一设备通过加速单元从第二设备获取的数据。

本申请实施例中第一设备可以通过多种方式向加速服务管理单元发送订购请求,例如,第一设备可以通过web网页、应用程序或应用程序接口API向加速服务管理单元发送订购请求。

加速服务管理单元接收到第一设备发送的订购请求之后,根据订购请求创建加速单元。例如,加速管理服务单元根据订购信息以购买虚拟机、物理机或容器的方式创建加速单元,并跟据订购信息中的配置信息将加速单元关联到对应的VPC或子网。

202.接收数据传输请求,数据传输请求指示在第一设备和第二设备之间传输第一数据。

云服务平台接收数据传输请求,数据传输请求指示在第一设备和第二设备之间传输第一数据。具体的,云服务平台中的加速单元接收第一设备通过数据代理单元发送的数据传输请求。

在第一设备向第二设备发送第一数据的场景中,该数据传输请求包括第二设备的地址,数据传输请求指示云服务平台根据第二设备的地址将第一数据发送至第二设备。在第一设备向第二设备请求第一数据的场景中,该数据传输请求包括第二设备的地址,数据传输请求指示云服务平台根据第二设备的地址从第二设备获取第一数据。

本申请实施例中数据传输请求还包括第一数据或者第一数据的哈希值。例如,在第一设备向第二设备发送第一数据的场景中,加速单元接收数据传输请求之前,第一设备通过数据代理单元计算第一数据的哈希值,并在数据代理单元的数据重复性表中查询第一数据的哈希值,该数据重复性表用于指示已经缓存在加速单元的第一数据,数据重复性表包括第一数据与哈希值的对应关系。

当数据重复性表中命中第一数据的哈希值时,则说明加速单元的缓存中存在第一数据,此时,数据传输请求包括第一数据的哈希值。当数据重复性表中未命中第一数据的哈希值时,则说明加速单元的缓存中不存在第一数据,此时,数据传输请求中则包括第一数据。

本申请实施例中第一数据包括数据代理单元执行分段操作后多个第一数据分块,第一数据的哈希值包括多个第一数据分块的哈希值。具体的,在第一设备向第二设备发送数据的场景中,数据代理单元向加速单元发送第一数据之前,第一设备通过数据代理单元对要发送的第一数据进行数据分段得到第一数据分块,数据代理单元计算第一数据分块的哈希值,数据代理单元基于第一数据分块的哈希值查询数据重复性表。

如果数据重复性表中命中第一数据分块的哈希值,则数据传输请求包括第一数据分块的哈希值。如果数据重复性表中未命中第一数据分块的哈希值,则数据传输请求包括第一数据分块。

203.确定计算资源的缓存中存在第一数据,读取第一数据。

当加速单元的缓存中存在第一数据时,加速单元从缓存中读取第一数据。当加速单元的缓存中不存在第一数据时,则加速单元判断第一数据是否满足缓存条件,若满足缓存条件,则将第一数据存储至缓存。该第一数据包括第一设备和第二设备之间要传输的数据。

即当加速单元接收到的数据传输请求中包括第一数据的哈希值时,则云服务平台确定加速单元的缓存中存在第一数据,读取第一数据。当加速单元接收到的数据传输请求中包括第一数据时,则云服务平台确定加速单元的缓存中不存在第一数据,则判断第一数据是否满足缓存条件,若满足缓存条件,将第一数据存入缓存。

需要说明的是,本申请实施例中第一数据包括分段后一个或多个第一数据分块,当加速单元接收到第一数据分块的哈希值时,加速单元从根据第一数据分块的哈希值从缓存中读取第一数据分块。当加速单元接收到第一数据分块之后,判断第一数据分块是否满足缓存条件,若第一数据分块满足加速单元的缓存条件,则加速单元将第一数据分块缓存至加速单元的缓存。若第一数据分块不满足加速单元的缓存条件,则加速单元将第一数据分块发送至第二设备。缓存条件例如,第一数据分块的数据长度大于或等于预设阈值。

可以理解的是,本申请实施例中加速单元在缓存第一数据之后,加速单元向数据代理单元发送通知消息,该通知消息用于通知数据代理单元更新数据重复性表,数据重复性表用于指示已经缓存在加速单元中的数据。

204.根据数据传输请求,将第一数据发送至第一设备或第二设备。

加速单元根据数据传输请求,将第一数据发送至第一设备或第二设备。在第一设备向第二设备发送数据的场景中,当加速单元的缓存中存在第一数据时,加速单元从缓存中读取第一数据之后,根据数据传输请求将该第一数据发送至第二设备。当加速单元的缓存中不存在第一数据时,加速单元将数据传输请求将第一数据转发至第二设备。

在第一设备向第二设备请求第二数据场景中,第一设备通过加速单元从第二设备获取第二数据之后,加速单元将传输过的第二数据存储至加速单元的缓存。当加速单元数据传输请求时,若数据传输请求指示第一设备向第二设备请求第二数据,则加速单元可以直接读取缓存中的第二数据,将加速单元中缓存的第二数据发送至第一设备。

本申请实施例中数据加速管理单元可以基于第一设备的订购请求创建加速单元,加速单元能够缓存第一设备和第二设备传输过的数据,使得第一设备和第二设备之间再次进行数据传输时可以直接从加速单元的缓存中读取数据传输,从而为第一设备和第二设备之间的数据传输提供了加速服务,提升了第一设备和第二设备之间的数据传输效率。

下面第一设备以用户设备为例,第二设备以云服务器为例,介绍本申请实施例提供的数据传输方法。

请参阅图3,图3为本申请实施例提供的另一种数据传输方法的流程示意图。该数据传输方法包括但不限于以下一个或者多个步骤:

301.用户设备向数据代理单元发送第一数据。

用户设备向数据代理单元发送第一数据,该第一数据包括用户设备要向云服务器发送的数据。

在步骤301的一个示例中,用户设备需要通过云服务器执行云渲染任务,用户设备中的应用程序将需要渲染的数据发送至数据代理单元。

302.数据代理单元对第一数据进行分段和去重操作。

数据代理单元对第一数据进行分段和去重操作。具体的,数据代理单元对第一数据进行分段操作,得到多个第一数据分块,并对分段后的第一数据分块计算哈希值,得到多个第一数据分块的哈希值。数据代理单元在对第一数据进行分段的过程中,数据单元可以基于去重会话中设置的分隔符来进行数据分段,数据分段的方式包括固定分块方式和变长分块方式。

可以理解的是,数据代理单元在进行去重分析之后,数据代理单元可以基于多个第一数据分块的哈希值对第一数据执行去重操作,代理单元将哈希值相同的第一数据分块进行数据重删,得到去重操作后的第一数据。

数据代理单元生成第一数据的哈希值之后,在数据重复性表中查询第一数据分块的哈希值,该数据重复性表中用于指示已经缓存在连接加速模块的中的数据。数据代理单元通过查询数据重复性表可以确定第一数据分块是否已经存在于连接加速模块的缓存中。

本申请实施例中数据代理单元可以基于可编程的去重会话进行对第一数据进行通信传输,其中不同编程程序可以指定不同去重数据分块方式。如下为本申请实施例中去重会话的一个示例:

Session s=Session.createOrOpen(…)//创建或者打开一个去重会话。

Transport t=session.createTransport(...)//基于会话创建一个传输通道,一个会话可以支持一个或者多个传输通道。

t.addDedupPrefix(“}”)//设置去重分隔符。

t.setDedupBlockSize(“4M”)//可设置去重数据块大小,用于固定块去重算法或者变长块的最大块限制。

Stream stream=t.createOutputStream(...)//基于传输通常创建一个传输输出流。

Stream.write(data...)//写数据。

Stream.write(data,true)//写数据,并要求本次写数据进行去重处理。

本申请实施例中数据代理单元可以基于一个去重会话中的数据分块进行去重,也可以基于多个去重会话中的数据分块进行去重,具体不作限定。

303.若数据重复性表未命中第一数据分块,向连接加速模块发送第一数据分块。

若数据代理单元中的数据重复性表中未命中第一数据分块的哈希值,则数据代理单元向连接加速模块发送第一数据分块。

304.若第一数据分块满足缓存条件,则缓存第一数据分块。

连接加速模块接收到数据代理单元发送的第一数据中的第一数据分块之后,对第一数据分块进行分析。具体的,若第一数据分块满足缓存条件,则连接加速模块将第一数据分块存储至缓存。例如,当第一数据分块的数据长度大于或等于预设阈值时,连接加速模块将第一数据分块存储至缓存,并计算第一数据分块的哈希值。

305.连接加速模块向云服务器转发第一数据分块。

连接加速模块向云服务器转发第一数据分块。具体的,连接加速模块向云服务器转发的第一数据包括已经缓存的第一数据分块和不满足缓存条件的第一数据分块。

本申请实施例中云服务器可以通过软件开发工具SDK接收第一数据分块,或者通过TCP协议接收第一数据分块,具体不作限定。

306.连接加速模块向数据代理单元发送通知消息。

连接加速模块将第一数据分块存储至连接加速模块的缓存之后,连接加速模块向数据代理单元发送的通知消息,通知消息用于通知数据代理单元更新数据重复性表,数据重复性表用于指示已经缓存在所述加速单元的数据。

数据代理单元接收到连接加速模块发送的通知消息之后,根据通知消息更新内部的数据重复性表。具体的,数据代理单元在数据重复性表中标识第一数据已经在连接加速模块已经有缓存。例如,标识数据段哈希值为A的数据已经在连接加速模块缓存。

本申请实施例中步骤305与步骤306的执行顺序不作限定。

307.用户设备再次发送第一数据。

308.数据代理单元对第一数据进行分段和去重操作。

本申请实施例中步骤307至步骤308与上述步骤301与步骤302中所执行的方法类似,具体不再赘述。

309.若数据重复性表命中第一数据分块,向连接加速模块发送第一数据的哈希值。

若数据代理单元中的数据重复性表中命中第一数据分块的哈希值,则说明连接加速单元中缓存了第一数据分块。因此,数据代理单元向连接加速模块发送第一数据分块的哈希值。

310.连接加速模块根据第一数据分块的哈希值读取第一数据分块。

连接加速模块接收到第第一数据分块的哈希值之后,连接加速模块根据第一数据分块的哈希值读取第一数据分块。

311.连接加速模块向服务器发送第一数据分块。

连接加速模块根据第一数据中第一数据分块的哈希值读取第一数据分块之后,连接加速模块向云服务器发送第一数据分块。

312.连接加速模块进行缓存数据清理。

连接加速模块对缓存中的数据进行清理。具体的,连接加速模块可以逐条清理缓存数据,可以批量多条清理缓存数据,具体不做限定。

本申请实施例中连接加速模块可以定期触发对缓存数据的清理,也可以等缓存的数据到达预设容量时触发连接加速模块对缓存进行数据清理,具体不作限定。

313.连接加速模块向数据代理单元发送清理通知消息。

连接加速模块进行缓存数据清理之后,向数据代理单元发送清理通知消息,该清理通知消息用于通知数据代理单元清理数据重复性表中相应被清除的缓存数据的哈希值。

314.根据清理通知消息清理数据重复性表。

数据代理单元根据清理通知消息清理数据重复性表,具体的,数据代理单元删除数据重复性表中已经被加速单元清理的数据分块所对应的哈希值。

本申请实施例中步骤312至步骤314与上述步骤301至步骤310的执行顺序不作限定。

本申请实施例中在用户设备向云服务器发送第一数据的场景中,连接加速模块通过读取缓存中的第一数据并发送至云服务器,从而提升了用户设备向云服务器发送第一数据的速度,减少了数据传输过程中的带宽消耗。

下面第一设备以云服务器为例,第二设备以外部资源服务器为例介绍本申请实施例提供的数据传输方法。

请参阅图4,图4为本申请实施例提供的另一种数据传输方法的流程示意图。该数据传输方法包括但不限于以下一个或多个步骤:

401.云服务器通过数据代理单元向外部访问加速模块发送第一访问请求,该第一访问请求用于向外部资源服务器请求第二数据。

云服务器通过数据代理单元向外部访问加速模块发送第一访问请求,该第一访问请求用于向外部资源服务器请求第二数据。第一访问请求包括第二数据的源地址信息,源地址信息例如第二数据所对应的同一资源定位符URL。

例如,在步骤401的一个示例中,云服务器在执行云渲染任务的过程中,当云服务器需要连接到外部资源服务器获取云渲染任务相关的数据时,云服务器通过数据代理单元向外部访问加速模块发送第一访问请求,该第一访问请求中的源地址信息为“https://...”。

本申请实施例中的云服务器可以通过proxy的方式访问外部资源服务器的第二数据,或者通过SDK的方式访问外部资源服务器的第二数据,具体不做限定。

402.外部访问加速模块查询缓存中是否存在第二数据。

外部访问加速模块查询缓存中是否存在第二数据。具体的,外部访问加速模块接收到第一访问请求之后,对第一访问请求中的源地址信息进行分析,根据源地址信息查询外部访问加速模块中缓存中是否存在第二数据。

403.若不存在,外部访问加速模块向外部资源服务器转发该第一访问请求。

若外部访问加速模块中不存在第二数据,外部访问加速模块向外部资源服务器转发该第一访问请求。具体的,外部访问加速模块根据第一访问请求中源地址信息向外部资源服务器转发第一访问请求。

需要说明的是,当外部访问加速模块的缓存中存在第二数据时,外部访问加速模块还要基于预先配置的缓存策略决定是否读取第二数据,例如,当外部访问加速模块中的缓存数据过期时,外部访问加速模块仍会向外部资源服务器转发第一访问请求。

404.外部资源服务器向外部访问加速模块发送第二数据。

外部资源服务器接收到第一访问请求之后,外部资源服务器向外部访问加速模块发送第二数据。

本申请实施例中外部资源服务器可以通过超文本传输HTTP协议向外部访问加速模块发送第二数据,也可以通过其他协议向外部访问加速模块发送第二数据,具体不做限定。

405.外部访问加速模块缓存第二数据。

外部访问加速模块接收外部资源服务器发送的第二数据之后,在外部访问加速模块缓存第二数据。外部加速模块建立第二数据与源地址信息的对应关系,以使得云服务器再次请求第二数据是根据源地址信息从外部访问加速模块的缓存中查询第二数据。

406.外部访问加速模块向云服务器发送第二数据。

外部访问加速模块接收外部资源服务器发送的第二数据之后,外部访问加速模块向云服务器发送第二数据。

本申请实施例中步骤405至步骤406的执行顺序不做限定。

407.云服务器通过数据代理单元向外部访问加速模块发送第二访问请求,该第二访问请求用于再次请求同源的第二数据。

云服务器通过数据代理单元向外部访问加速模块发送第二访问请求,该第二访问请求用于再次请求第二数据,即第二访问请求中的源地址信息与第一访问请求中源地址信息相同。

408.根据第二访问请求查询外部访问加速模块中是否缓存第二数据。

外部访问加速模块接收到第二访问请求之后,提取出第二访问请求中的源地址信息,根据第一访问请求中源地址信息查询外部访问加速模块中是否存在第二数据。

例如,在步骤408的一个示例中,外部访问加速模块根据第二访问请中的统一资源定位符URL查询外部访问加速模块的缓存中是否存在第二数据。

409.外部访问加速模块触发探测数据资源变化。

外部访问加速模块可以触发探测数据资源变化。具体的,外部访问加速模块向外部资源服务器发送探测消息,该探测消息用于更新缓存中源地址信息所对应的数据。

例如,当外部访问加速模块中源地址信息所对应的数据发生变化时,外部访问加速模块可以触发探测数据资源变化,从外部资源服务器获取源地址信息对应的变化数据。再例如,当外部访问加速模块中源地址信息所对应的数据过期时,外部访问加速模块也可以触发探测数据资源变化,从外部资源服务器获取源地址信息对应的更新数据。

本申请实施例中外部访问加速模块可以定期触发探测资源变化,可以基于云服务器的请求消息触发探测资源变化,具体不做限定。

410.若存在,外部访问加速模块向云服务器发送缓存的第二数据。

若外部访问加速模块中存在第二数据,外部访问加速模块基于第二访问请求中源地址信息读取缓存中的第二数据,外部访问加速模块向云服务器发送缓存的第二数据。

本申请实施例中台在云服务器向外部资源服务器请求第二数据的场景中,当外部访问加速模块中缓存了第二数据时,外部访问加速模块通过读取缓存中的第二数据并发送至云服务器,从而提升云服务器从外部访问加速模块获取第二数据的速度,减少了数据传输过程中的带宽消耗。

上面介绍本申请实施例提供的数据传输方法,下面结合附图介绍本申请实施例涉及的服务平台。

请参阅图5,图5为本申请实施例提供的一种云服务平台的结构示意图。该装置用于实现上述各实施例中云服务平台所执行的各个步骤,如图5所示,该云服务平台500包括数据加速管理单元501、数据代理单元502和加速单元503。

其中,数据加速管理单元501用于提供第一配置接口,第一配置接口用于接收第一设备发送的订购请求,订购请求包括计算资源的规格,计算资源用于缓存第一设备与第二设备传输过的数据。数据代理单元502用于接收数据传输请求,数据传输请求指示在第一设备和第二设备之间传输第一数据。加速单元503用于确定计算资源的缓存中存在第一数据,读取第一数据。加速单元503还用于根据数据传输请求,将第一数据发送给第一设备或第二设备。

一种可能的实施方式中,数据传输请求指示从第一设备发送第一数据至第二设备,数据传输请求包括第二设备的地址,加速单元503具体用于根据第二设备的地址,将缓存中的第一数据发送至第二设备。

一种可能的实施方式中,数据传输请求指示第一设备向第二设备请求第一数据,数据传输请求包括第二设备的地址。加速单元503具体用于将缓存中的第一数据发送至第一设备。

一种可能的实施方式中,数据传输请求包括第一数据的哈希值,数据代理单元502具体用于确定数据重复性表中包括哈希值,数据重复性表包括第一数据与哈希值的对应关系。

一种可能的实施方式中,加速单元503具体用于接收第一数据的哈希值,根据第一数据的哈希值,将第一数据发送给第一设备或第二设备。

一种可能的实施方式中,数据代理单元502具体还用于当数据重复性表不包括哈希值时,向第一设备返回第一数据传输响应,接收第一设备发送的第一数据,并更新数据重复性表;或者,当数据重复性表不包括哈希值时,向第二设备返回第二数据传输响应接收第二设备发送的第一数据,并更新数据重复性表。

应理解以上装置中单元的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且装置中的单元可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分单元以软件通过处理元件调用的形式实现,部分单元以硬件的形式实现。例如,各个单元可以为单独设立的处理元件,也可以集成在装置的某一个芯片中实现,此外,也可以以程序的形式存储于存储器中,由装置的某一个处理元件调用并执行该单元的功能。此外这些单元全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件又可以成为处理器,可以是一种具有信号的处理能力的集成电路。在实现过程中,上述方法的各步骤或以上各个单元可以通过处理器元件中的硬件的集成逻辑电路实现或者以软件通过处理元件调用的形式实现。

值得说明的是,对于上述方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明本申请并不受所描述的动作顺序的限制,其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明本申请所必须的。

本领域的技术人员根据以上描述的内容,能够想到的其他合理的步骤组合,也属于本发明本申请的保护范围内。其次,本领域技术人员也应该熟悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明本申请所必须的。

请参阅图6,图6为本申请实施例提供的一种云服务平台示意图。如图6所示,该云服务平台600包括:处理器610、存储器620和接口630,处理器610、存储器620与接口630通过总线(图中未标注)耦合。存储器620存储有指令,当存储器620中的执行指令被执行时,云服务平台600执行上述方法实施例中云服务平台所执行的方法。

云服务平台600可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integrated circuit,ASIC),或,一个或多个微处理器(digital singnal processor,DSP),或,一个或者多个现场可编程门阵列(field programmable gate array,FPGA),或这些集成电路形式中至少两种的组合。再如,当装置中的单元可以通过处理元件调度程序的形式实现时,该处理元件可以是通用处理器,例如中央处理器(central processing unit,CPU)或其它可以调用程序的处理器。再如,这些单元可以集成在一起,以片上系统(system-on-a-chip,SOC)的形式实现。

处理器610可以是中央处理单元(central processing unit,CPU),还可以是其它通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(fieldprogrammable gate array,FPGA)或者其它可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。通用处理器可以是微处理器,也可以是任何常规的处理器。

存储器620可以包括只读存储器和随机存取存储器,并向处理器610提供指令和数据。存储器620还可以包括非易失性随机存取存储器。例如,存储器620可设置多个分区,每个区域分别用于存储不同软件模块的私钥。

存储器620可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data date SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。

总线除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。总线可以是快捷外围部件互连标准(peripheral component interconnect express,PCIe)总线,或扩展工业标准结构(extended industry standard architecture,EISA)总线、统一总线(unified bus,Ubus或UB)、计算机快速链接(compute express link,CXL)、缓存一致互联协议(cache coherent interconnect for accelerators,CCIX)等。总线可以分为地址总线、数据总线、控制总线等。

在本申请的另一个实施例中,还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当设备的处理器执行该计算机执行指令时,设备执行上述方法实施例中云服务平台所执行的方法。

在本申请的另一个实施例中,还提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中。当设备的处理器执行该计算机执行指令时,设备执行上述方法实施例中云服务平台所执行的方法。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,read-onlymemory)、随机存取存储器(RAM,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。

相关技术
  • 一种基于数据传输系统的数据传输方法、装置及系统
  • 一种数据传输方法、数据检测方法及装置
  • 数据传输方法及相关装置
  • 一种实现数据传输处理的方法及装置
  • 一种基于模数转换器的高速数据传输方法及装置
  • 一种无地址设备的数据传输方法、相关方法以及相关装置
  • 一种数据传输方法、数据传输装置和相关设备
技术分类

06120116498924