CN117082124A - 数据传送方法、装置、设备、介质及产品 - Google Patents
数据传送方法、装置、设备、介质及产品 Download PDFInfo
- Publication number
- CN117082124A CN117082124A CN202311302371.0A CN202311302371A CN117082124A CN 117082124 A CN117082124 A CN 117082124A CN 202311302371 A CN202311302371 A CN 202311302371A CN 117082124 A CN117082124 A CN 117082124A
- Authority
- CN
- China
- Prior art keywords
- data
- target
- data block
- target service
- index
- 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
- 238000000034 method Methods 0.000 title claims abstract description 86
- 230000005540 biological transmission Effects 0.000 title claims abstract description 24
- 238000004891 communication Methods 0.000 claims abstract description 103
- 230000004044 response Effects 0.000 claims abstract description 47
- 238000000605 extraction Methods 0.000 claims description 27
- 238000004422 calculation algorithm Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 8
- 238000012384 transportation and delivery Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 21
- 230000008569 process Effects 0.000 description 14
- 230000008520 organization Effects 0.000 description 10
- 239000000284 extract Substances 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000007726 management method Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 238000013523 data management Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000000739 chaotic effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
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/14—Session management
- H04L67/141—Setup of application sessions
-
- 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/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- 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/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种数据传送方法,该方法由数据中台执行,数据中台与接入层之间具有通信连接,该方法包括:从目标客户端经由接入层获取数据传送请求,其中数据传送请求指示传送目标业务数据;获取目标业务数据并生成目标业务数据的索引;经由接入层将目标业务数据的索引传送给目标客户端;根据预设通信协议与目标客户端建立通信连接并且响应于从目标客户端接收到目标业务数据的索引,将目标业务数据传送给目标客户端。根据本申请的数据传送方法来传送数据具有较高的传送效率。
Description
技术领域
本申请涉及互联网技术领域,特别涉及数据传送方法和装置、计算设备、计算机可读存储介质及计算机程序产品。
背景技术
当下,社会进入互联网时代,用户只要具备一个联网的客户端,例如一部手机,就可以通过连接互联网公司提供的数据装置轻松享受各种互联网服务,例如可以在客户端上欣赏最新发布的歌曲,观看一部电影。因为在大多数情况下,客户端数量较多,数据装置也非常多,所以简单的解决方案例如客户端到数据装置的通信连接已经不能满足用户的普遍需求,因此如何简单、高效的传送数据,是需要解决的问题。
发明内容
鉴于此,本申请提供了一种数据传送方法和装置、计算设备、计算机可读存储介质及计算机程序产品,期望缓解或克服上面提到的部分或全部缺陷以及其他可能的缺陷。
根据本申请的第一方面,提供了一种数据传送方法,所述方法由数据中台执行,所述数据中台与接入层之间具有通信连接,所述方法包括:从目标客户端经由所述接入层获取数据传送请求,其中所述数据传送请求指示传送目标业务数据;获取所述目标业务数据并生成所述目标业务数据的索引;经由所述接入层将所述目标业务数据的索引传送 给所述目标客户端;根据预设通信协议与所述目标客户端建立通信连接 并且响应于从所述目标客户端接收到所述目标业务数据的索引,将所述目标业务数据传送给所述目标客户端。
在根据本申请的一些数据传送方法的实施例中,根据预设通信协议与所述目标客户端建立通信连接,包括:根据服务器传送事件(SSE)协议与所述目标客户端建立通信连接。
在根据本申请的一些数据传送方法的实施例中,响应于从所述目标客户端接收到所述目标业务数据的索引,将所述目标业务数据传送给所述目标客户端,包括:从所述目标客户端获取统一资源定位符;响应于所述统一资源定位符中的一个请求参数是所述索引,将所述目标业务数据传送给所述目标客户端。
在根据本申请的一些数据传送方法的实施例中,生成所述目标业务数据的索引,包括:确定加密算法的版本、当前时间的时间戳、所述目标业务数据的格式、所述目标业务数据的过期时间以及对应所述目标业务数据的随机数;对所述加密算法的版本、当前时间的时间戳、所述目标业务数据的格式、所述目标业务数据的过期时间以及对应所述目标业务数据的随机数的组合进行加密,得到对应于所述目标业务数据的加密编码;将所述加密编码转换为字符串,作为所述目标业务数据的索引。
在根据本申请的一些数据传送方法的实施例中,目标业务数据是包括多个数据分组的流式数据,并且所述方法还包括:根据所述目标业务数据的索引在存储区中确定所述目标业务数据的存储地址;为每个数据分组附加控制信息以得到相应的每个内容数据块,其中所述控制信息至少包括首尾标识信息、内容信息和次序信息,每个内容数据块的内容信息指示所述目标业务数据的部分内容,每个内容数据块的首尾标识信息为空;生成头部数据块并在所述存储地址存储所述头部数据块,其中所述头部数据块的首尾标识信息指示所述数据块为头部数据块,所述头部数据块的内容信息为空,所述头部数据块的次序信息指示第一次序;按照所述目标业务数据的内容的顺序依次存储各个内容数据块,其中各个内容数据块的次序信息根据内容信息的顺序依次递增;响应于所述目标业务数据的各个内容数据块均被存储,生成并存储尾部数据块,其中所述尾部数据块的首尾标识信息指示所述数据块为尾部数据块,所述尾部数据块的内容信息为空,所述尾部数据块的次序信息指示最后一个次序。
在根据本申请的一些数据传送方法的实施例中,存储区的各个存储地址具有对应的版本信息,所述版本信息指示在对应的存储地址已经进行过写入操作的次数,并且所述在所述存储地址存储所述头部数据块,包括:获取所述存储地址对应的版本信息;响应于所述存储地址对应的版本信息指示所述存储地址已经进行过写入操作的次数为0,将所述头部数据块存储到所述存储地址,并将所述存储地址对应的版本信息修改为指示所述存储地址已经进行过写入操作的次数为1。
在根据本申请的一些数据传送方法的实施例中,将所述目标业务数据传送给所述目标客户端,包括:根据所述索引确定所述目标业务数据的过期时间;响应于当前时间没有达到所述目标业务数据的过期时间,根据所述索引在所述存储区提取所述目标业务数据的头部数据块、各个内容数据块和尾部数据块;根据所述预设通信协议,将所提取的数据块传送给所述目标客户端。
在根据本申请的一些数据传送方法的实施例中,根据所述索引在所述存储区提取所述目标业务数据的头部数据块、各个内容数据块和尾部数据块,包括:提取所述头部数据块;响应于没有提取到所述头部数据块并且针对所述头部数据块的提取次数不超过第一数量,每隔第一预定时间段再次提取所述头部数据块;响应于提取到所述头部数据块,将所述头部数据块确定为当前提取的数据块并循环执行下述步骤:根据当前提取的数据块的次序信息来提取后续一个数据块;响应于没有提取到所述后续一个数据块并且针对所述后续一个数据块的提取次数不超过第二数量,每隔第二预定时间段再次提取所述后续一个数据块;响应于针对所述后续一个数据块的提取次数超过所述第二数量,停止该循环从而停止提取所述目标业务数据;响应于提取到所述后续一个数据块并且所述后续一个数据块是尾部数据块,停止该循环从而停止提取所述目标业务数据;响应于提取到所述后续一个数据块并且所述后续一个数据块是内容数据块,将所述后续一个数据块确定为当前提取的数据块。
根据本申请的第二方面,提供了一种数据传送装置,所述装置属于数据中台,所述数据中台与接入层之间具有通信连接,所述装置包括:获取模块,其被配置为从目标客户端经由所述接入层获取数据传送请求,其中所述数据传送请求指示传送目标业务数据;处理模块,其被配置为获取所述目标业务数据并生成所述目标业务数据的索引;第一传送模块,其被配置为经由所述接入层将所述目标业务数据的索引传送给所述目标客户端;第二传送模块,其被配置为根据预设通信协议与所述目标客户端建立通信连接并且响应于从所述目标客户端接收到所述目标业务数据的索引,将所述目标业务数据传送给所述目标客户端。
根据本申请的第三方面,提供了一种计算设备,包括存储器和处理器,其中所述存储器中存储有计算机程序,所述计算机程序在被所述处理器执行时促使所述处理器执行根据本申请一些实施例的数据传送方法的步骤。
根据本申请的第四方面,提供了一种计算机可读存储介质,其上存储计算机可读指令,所述计算机可读指令在被执行时实现根据本申请一些实施例的数据传送方法。
根据本申请的第五方面,提供了一种计算机程序产品,包括计算机指令,计算机指令在被处理器执行时实现根据本申请一些实施例的数据传送方法。
在根据本申请一些实施例的数据传送方法和装置中,在传送目标业务数据阶段,数据中台与目标客户端直接建立通信,所以接入层无需提供多个消息队列,数据中台也无需维护这些消息队列,降低了数据中台的任务量,并且,每个目标客户端都与数据中台按照统一的通信协议连接,所以目标客户端至多需要设置两个通信协议,这可以降低对目标客户端的通信能力的要求;因为重新建立了通信连接,而数据中台在新的通信连接(例如建立基于超文本传输协议的通信连接)中不能主动传送数据,所以数据中台在与目标客户端建立通信连接之前,为目标业务数据确定了索引,并将该索引传送给目标客户端,以及在数据中台接收到索引后才向目标客户端传送目标业务数据,这可以将主动传送目标业务数据的过程转化为目标客户端主动拉取目标业务数据过程,间接实现了主动传送目标业务数据的目的,使得在目标客户端与数据中台建立基于超文本传输协议的通信连接的情况下,仍然可以传送流式数据。
根据下文描述的实施例,本申请的这些和其它优点将变得清楚,并且参考下文描述的实施例来阐明本申请的这些和其它优点。
附图说明
现在将更详细并且参考附图来描述本申请的实施例,其中:
图1是一种常见的数据传送方法的示意图;
图2是根据本申请的一些实施例的数据传送方法的示例场景的示意图;
图3是根据本申请的一些实施例的数据传送方法的流程图;
图4是根据本申请的一些实施例的再次请求传送数据的示意图;
图5是根据本申请的实施例的生成和处理索引的示意图;
图6是根据本申请的一些实施例的存储目标业务数据的流程图;
图7是根据本申请的一些实施例的数据块的示意图;
图8是根据本申请的一些实施例的存储数据块的示意图;
图9是根据本申请的一些实施例的提取目标业务数据的示意图;
图10是根据本申请的一些实施例的提取目标业务数据的流程图;
图11是根据申请的一些实施例的数据传送方法的架构图;
图12是根据本申请的一些实施例的数据传送装置的示例性结构框图;
图13示出了一个示例系统,其包括代表可以实现本文描述的各种方法的一个或多个系统和/或设备的示例计算设备。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本申请将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组件、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不必然与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应理解,虽然本文中可能使用术语第一、第二、第三等来描述各种组件,但这些组件不应受这些术语限制。这些术语乃用以区分一组件与另一组件。因此,下文论述的第一组件可称为第二组件而不偏离本申请概念的教示。如本文中所使用,术语“和/或”及类似术语包括相关联的列出项目中的任一个、多个和全部的所有组合。
本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本申请所必须的,因此不能用于限制本申请的保护范围。
在详细介绍本申请的实施例之前,为了清楚起见,首先对一些相关的概念进行解释。
本申请涉及数据处理,下面对相关技术术语进行简单介绍:
数据中台:作为平台型组织的一部分,是在接入层和资源层之间的组织模块,负责从资源层获取接入层的业务后台所请求的业务数据。
接入层:作为平台型组织的一部分,是承担对外的接口作用的组织模块,负责与所有客户端的通信任务,并将来自客户端的请求传送给数据中台,满足该请求。其上布置有针对具体业务的业务后台。
业务后台:接入层中所设置的抽象模块,对应于一个具体的业务,例如对应于音乐提供服务等。
远程字典服务(Redis):一种存储方案,是一个开源的支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的应用接口。
Lua:一种脚本语言,Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。一个完整的Lua解释器不过200k,在所有脚本引擎中,Lua的速度是最快的。
超文本传输协议(Hypertext Transfer Protocol,HTTP):是一个简单的请求-响应协议,它通常运行在TCP协议之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。客户端与服务器之间的HTTP连接是一种一次性连接,它限制每次连接只处理一个请求,当服务器返回本次请求的应答后便立即关闭连接,下次请求再重新建立连接。
服务器传送事件(Server-Sent Events,SSE)协议:基于HTTP协议,允许服务器将数据以事件流(Event Stream)的形式传送给客户端。客户端通过建立HTTP连接,可以实时接收服务器传送的数据。SSE协议是一种单向通信,只能从服务器向客户端不断传送数据。与HTTP协议一样,属于轻量级的协议。在本申请的一些实施例中,可以使用SSE协议来完成从数据中台到客户端的流式数据的传送任务,这具有较低的通信成本。
万博套接字(WebSocket)协议:是一种全双工通信,可以实现双向通信,属于长连接通信协议。WebSocket协议相对于SSE协议是更重量级的协议,比较复杂。
下面是SSE协议和WebSocket协议之间的比较:(1)数据传送方向:SSE是服务器向客户端的单向通信,服务器可以主动传送数据给客户端。而WebSocket协议是双向通信,允许服务器和客户端之间进行实时的双向数据交换。(2)连接建立:SSE使用基于HTTP的长连接,通过普通的HTTP请求和响应来建立连接,从而实现数据的实时传送。WebSocket协议使用自定义的协议,通过建立WebSocket连接来实现双向通信。(3)兼容性:由于SSE协议基于HTTP协议,它可以在大多数现代浏览器中使用,并且不需要额外的协议升级。WebSocket协议在绝大多数现代浏览器中也得到了支持,但在某些特殊的网络环境下可能会遇到问题。
针对数据传送方案的一系列问题,在相关技术中,一种解决方案是布置数据管理平台组织,其包括接入层和数据中台,用于根据客户端的请求来传送数据。接入层往往接入了多个业务后台,由于每个业务后台可能按照不同的通信协议与客户端连接,导致客户端和数据设备之间所形成的网络是具有较高的复杂性的异构网络,因此数据传送的效率较低,并且用户体验较差,以及对客户端的通信能力要求较高。相关数据传送方法如图1所示。
图1是一种常见的数据传送方法的示意图。在图1所示的实施例中,负责传送数据的数据管理平台组织由三个组织模块构成:接入层101、数据中台102、资源层103。客户端104上的三个业务应用分别接入该接入层101并仅和接入层101建立通信连接。这三个业务应用是音乐APP 105、小程序应用106、客户端104的系统应用107。其中音乐APP 105以某私有协议接入该接入层101的业务后台1051,小程序应用106以HTTP协议接入该接入层101的业务后台1061,客户端104的系统应用107以WebSocket协议接入该接入层101的业务后台1071,这三个业务应用分别请求不同的业务数据,数据中台102从资源层103获取所请求的业务数据,并将其传送给客户端104。
在该实施例中,客户端104可以分别在上述三个业务应用中请求不同的业务数据,这就导致客户端104需要安装有三种通信协议:某私有协议、HTTP协议、WebSocket协议,并按照这些通信协议与接入层101建立不同的通信连接,从而形成复杂的异构网络,客户端104具有较高的通信成本。
如果客户端104在音乐APP 105上请求传送关于某音乐的流式数据,则因为流式数据的传送往往需要数据中台102进行主动传送,而HTTP协议不支持这种主动传送,SSE协议也不支持由数据中台主动发起的数据传送,所以在采用HTTP协议或SSE协议时,需要从资源层103接收到全部的流式数据以后,再传送给客户端104。或者使用比较复杂的协议(诸如WebSocket的全双工通信协议)来实现流式数据的传送。
此外,在传送数据的过程当中,接入层101需要为每个业务后台单独提供一个消息队列,由数据中台102来负责维护这些消息队列,数据中台102也接入该接入层101。因此在该数据传送场景中,数据中台102具有较高的接入成本。
图2是根据本申请的一些实施例的数据传送方法的示例场景200的示意图。场景200中可以包括客户端201、网络202、接入层设备203、数据中台设备204,接入层设备203通过网络202与客户端201通信地耦合在一起,数据中台设备204通过网络202与客户端201通信地耦合在一起,接入层设备203与数据中台设备204通信上耦合。网络202例如可以是广域网(WAN)、局域网(LAN)、无线网络、公用电话网、内联网以及本领域的技术人员熟知的任何其它类型的网络。在图2所示的实施例中,客户端201可以包括多个客户端,它们分别接入接入层设备203,分别与数据中台设备204建立通信连接。目标客户端201是客户端201中的特定客户端。
在该实施例中,数据传送方法由数据中台设备204执行。该方法包括下述步骤。
首先从目标客户端201经由接入层设备203获取数据传送请求,其中数据传送请求指示传送目标业务数据。所谓经由接入层设备203,是指该数据传送请求由目标客户端201生成,经过网络202传送给接入层设备203,然后接入层设备203将该数据传送请求传送给数据中台设备204。
然后获取目标业务数据并生成目标业务数据的索引。可以从外部设备(未示出)来获取该目标业务数据。
接下来经由接入层设备203将目标业务数据的索引传送给目标客户端201。所谓经由接入层设备203,是指该目标业务数据的索引传送给接入层设备202,然后接入层设备203经过网络202将目标业务数据的索引传送给标客户端201。
最后根据预设通信协议与目标客户端201建立通信连接205并且响应于从目标客户端201接收到目标业务数据的索引,将目标业务数据传送给目标客户端201。在该步骤中,目标业务数据从数据中台设备204经由通信连接205直接到达目标客户端201。
在图2所示的场景200中,根据本申请的一些实施例的数据传送方法在数据中台设备204上实施,但这仅仅是示意性的而非限制性的,根据本申请的一些实施例的数据传送方法还可以在其他具有具备充分的计算资源和计算能力的主体上实施,例如可以在具备充分的计算资源和计算能力的客户端201上实施等。当然,也可以部分在数据中台设备204上实施,部分在客户端201上实施,这不是限制性的。
本领域普通技术人员所理解的,数据中台设备204的实例可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
客户端201可以是任何类型的移动计算设备,包括移动计算机(例如,个人数字助理(PDA)、膝上型计算机、笔记本计算机、平板计算机、上网本等)、移动电话(例如,蜂窝电话、智能手机等)、可穿戴式计算设备(例如智能手表、头戴式设备,包括智能眼镜等)或其他类型的移动设备。在一些实施例中,客户端201也可以是固定式计算设备,例如台式计算机、游戏机、智能电视等。
如图2所示,客户端201可以包括显示屏以及可以经由显示屏与终端用户交互的终端应用。终端应用可以为本地应用程序、网页(Web)应用程序或者作为轻量化应用的小程序(Lite App,例如手机小程序、微信小程序)。在终端应用为需要安装的本地应用程序的情况下,可以将终端应用安装在客户端201中。在终端应用为Web应用程序的情况下,可以通过浏览器访问终端应用。在终端应用为小程序的情况下,可以通过搜索终端应用的相关信息(如终端应用的名称等)、扫描终端应用的图形码(如条形码、二维码等)等方式来在客户端201上直接打开终端应用,而无需安装终端应用。
图3是根据本申请的一些实施例的数据传送方法的流程图。所示方法300可以在图2所示的数据中台设备204上实施。在一些实施例中,在图2所示的客户端201具备充分的计算资源和计算能力的情况下,可以直接在客户端201上执行根据本申请的一些实施例的数据传送方法。在另一些实施例中,根据本申请的一些实施例的数据传送方法也可以由数据中台设备204、客户端201相组合地执行。如图3所示,根据本申请一些实施例的数据传送方法可以包括步骤S301-S304。
在步骤S301,从目标客户端经由接入层获取数据传送请求,其中数据传送请求指示传送目标业务数据。在该步骤中,目标客户端与接入层之间的通信协议可以是任何通信协议,例如轻量级的HTTP协议、重量级的WebSocket协议等。类似地,接入层与数据中台之间的通信协议可以是任何通信协议,例如较轻量级的SSE协议。数据传送请求可以请求传送针对一种业务应用的流式数据,例如请求传送某影视作品的流式数据。
在该步骤中,可以由目标客户端生成数据传送请求,然后根据目标客户端与接入层之间的通信协议,目标客户端将该数据传送请求传送给接入层,再然后根据接入层与数据中台之间的通信协议,接入层将该数据传送请求传送给数据中台,从而实现数据中台从目标客户端经由接入层获取数据传送请求的过程。
在步骤S302,获取目标业务数据并生成目标业务数据的索引。一般情况下,数据中台充当管理者的角色,各种类型的业务数据的保存任务由其他组织模块来实现,例如可以通过设置资源层来实现,但不排除业务数据被存储在数据中台本地的情形。如果目标业务数据被保存在诸如资源层的组织模块,则数据中台可以从中获取目标业务数据。例如可以按照数据中台与资源层之间的通信协议来获取资源层中保存的目标业务数据。
在确定目标业务数据后,需要为其生成索引。该索引可以是一段字符串或者一串数字等,用于表征该目标业务数据。之所以要生成目标业务数据的索引,一个作用是方便数据中台管理各个数据传送请求所请求的目标业务数据,使得对目标业务数据的存储、传送等操作不至于产生混淆。
在步骤S303,经由接入层将目标业务数据的索引传送给目标客户端。为了让目标客户端再发送一次请求且再次发送的请求中包含该索引,需要先将索引传送给目标客户端,使目标客户端知悉目标业务数据的索引。因为数据中台与目标客户端之间仍然以接入层为通信媒介,所以在该步骤中,先根据接入层与数据中台之间的通信协议,数据中台将该索引传送给接入层,然后根据目标客户端与接入层之间的通信协议,接入层将该索引传送给目标客户端,从而实现数据中台经由接入层将目标业务数据的索引传送给目标客户端的过程。
在步骤S304,根据预设通信协议与目标客户端建立通信连接并且响应于从目标客户端接收到目标业务数据的索引,将目标业务数据传送给目标客户端。因为目标客户端与数据中台之间建立了通信连接,所以目标客户端可以在该通信连接上将索引传送给数据中台,数据中台不经由接入层而直接从目标客户端获取该索引。在该步骤中,目标客户端所发送的内容可以不单单是索引,还可以是包含索引的链接等。例如,数据中台和目标客户端可以建立基于SSE协议的通信连接,目标客户端将索引作为统一资源定位符(UniformResource Locator,URL)中的一部分,将该统一资源定位符传送给数据中台,从而实现将索引传送给数据中台的目的。该预设通信协议可以是任何通信协议,作为示例,根据服务器传送事件(SSE)协议与目标客户端建立通信连接。在该步骤中体现了索引的另一个作用,即在新的通信连接中发起目标业务数据的传送,有助于实现降低对目标客户端的通信能力的要求的目的。
在根据本申请一些实施例的数据传送方法中,在传送目标业务数据阶段,数据中台与目标客户端直接建立通信,所以接入层无需提供多个消息队列,数据中台也无需维护这些消息队列,降低了数据中台的任务量,并且,每个目标客户端都与数据中台按照统一的通信协议连接,所以目标客户端至多需要设置两个通信协议,这可以降低对目标客户端的通信能力的要求;因为重新建立了通信连接,而数据中台在新的通信连接(例如建立基于超文本传输协议的通信连接)中不能主动传送数据,所以数据中台在与目标客户端建立通信连接之前,为目标业务数据确定了索引,并将该索引传送给目标客户端,以及在数据中台接收到索引后才向目标客户端传送目标业务数据,这可以将主动传送目标业务数据的过程转化为目标客户端主动拉取目标业务数据过程,间接实现了主动传送目标业务数据的目的,使得在目标客户端与数据中台建立基于超文本传输协议的通信连接的情况下,仍然可以传送流式数据。
在目标客户端与数据中台根据SSE协议建立了通信连接的实施例中,响应于从目标客户端接收到目标业务数据的索引,将目标业务数据传送给目标客户端,包括:首先从目标客户端获取统一资源定位符;然后响应于该统一资源定位符中的一个请求参数是前述索引,将目标业务数据传送给目标客户端。
由于SSE协议是以超文本传输协议为基础的,所以目标客户端可以向数据中台传送统一资源定位符。统一资源定位符中可以设置请求参数,所以利用SSE协议,目标客户端可以将索引作为一个参数来生成统一资源定位符。数据中台在获取来自目标客户端的统一资源定位符后,如果能从中解析出索引,则可以确定目标客户端请求传送目标业务数据。
图4是根据本申请的一些实施例的再次请求传送数据的示意图。如图4所示,目标客户端401生成了统一资源定位符“https://api/stream_resolve/trid/12a”。这里“trid”代表该请求参数为索引,“12a”是目标业务数据的索引的具体内容。目标客户端401将该统一资源定位符通过目标客户端401与数据中台402之间的基于SSE协议的通信连接传送给数据中台402。数据中台402接收到该统一资源定位符后,解析该统一资源定位符“https://api/stream_resolve/trid/12a”,当解析到“trid/12a”时,可以确定目标客户端401想获取的目标业务数据是索引为“12a”的业务数据。数据中台402根据SSE协议的规定,可以将存储区403中的目标业务数据传送给目标客户端401。
关于生成索引的方法,本申请提供了一些具体的实施例。在一些实施例中,生成目标业务数据的索引,包括如下步骤。
首先确定加密算法的版本、当前时间的时间戳、目标业务数据的格式、目标业务数据的过期时间以及对应目标业务数据的随机数。加密算法可以是确保索引的唯一性的任何加密算法,作为示例,该加密算法为哈希加密算法。当前时间的时间戳是加密时的时间戳,其有助于提高索引的唯一性,使得不同的业务数据对应于不同的索引。目标业务数据的格式指表达目标业务数据的具体格式,例如可以是JSON(JavaScript Object Notation,JS对象简谱)格式。目标业务数据的过期时间指示到达该时间时,则删除目标业务数据,这可以节约存储空间、简化业务数据的管理复杂度、提高业务数据的保密性。对应目标业务数据的随机数可以是任意长度的随机数,用于进一步提高索引的唯一性。
然后对加密算法的版本、当前时间的时间戳、目标业务数据的格式、目标业务数据的过期时间以及对应目标业务数据的随机数的组合进行加密,得到对应于目标业务数据的加密编码。例如可以使用哈希加密算法对其进行加密,从而得到哈希加密编码。
最后将加密编码转换为字符串,作为目标业务数据的索引。所得到的加密编码往往过长和过于复杂,不利于管理,因此可以将其转换成字符串,方便索引的管理。
如果目标客户端所请求的目标业务数据是流式数据,并且该流式数据是从数据中台外部获得的(例如资源层),本申请还提供了数据中台如何处理所获取的流式数据的实施例。
图5是根据本申请的实施例的生成和处理索引的示意图。加密参数501包括加密算法的版本“v1”,当前时间的时间戳“20230911102350”、目标业务数据的格式“JSON”、目标业务数据的过期时间“20230912120000”以及对应目标业务数据的随机数“2048”。加密参数501经过加密算法502加密则得到加密编码503。经过字符串转化操作,加密编码503被转换为索引504,得到索引504将其写入到存储区505中进行存储。在进行写入操作时,在506处判断是否写入成功。如果该索引504被首次写入存储区505,则写入成功,在508处结束该索引504的生成和处理;如果该索引504被写入时,发现存储区505中已经存储了相同的索引504,则写入不成功,需要通过507处的重新生成操作为目标业务数据重新生成索引。导致这种现象的原因可能是为不同的业务数据生成了相同的索引。通过506处的判断是否写入成功的操作可以确保各个业务数据的索引的唯一性。
图6是根据本申请的一些实施例的存储目标业务数据的流程图。在图6所示的实施例中,目标业务数据是包括多个数据分组的流式数据,并且还包括下述步骤。
在步骤S601,根据目标业务数据的索引在存储区中确定目标业务数据的存储地址。为了防止业务数据之间的混淆,可以为每个业务数据单独开辟一块存储空间,使得可以根据索引来确定目标业务数据的存储地址。
在步骤S602,为每个数据分组附加控制信息以得到相应的每个内容数据块,其中控制信息至少包括首尾标识信息、内容信息和次序信息,每个内容数据块的内容信息指示目标业务数据的部分内容,每个内容数据块的首尾标识信息为空。首尾标识信息指示该数据块是否是头部数据块或者是否是尾部数据块。在该实施例中,内容数据块用于表达目标业务数据的内容,不用于管理各个数据,所以将内容数据块的首尾标识信息设置为空,这可以简化目标业务数据的存储。次序信息用于确定各个内容数据块的次序。因为流式数据包括多个数据分组,各个数据分组之间存在特定的次序,所以需要次序信息来确保各个内容数据块的可读性。
图7是根据本申请的一些实施例的数据块的示意图。如图7所示,该数据块的首尾标识信息为空,所以是内容数据块,内容信息为“abcdefg”,次序信息为5,除此以外,该数据块还包括附加信息,该附加信息“str”指示内容信息的格式,由图7可以看到,该数据块的内容信息的格式为字符串格式。
在步骤S603,生成头部数据块并在存储地址存储头部数据块,其中头部数据块的首尾标识信息指示数据块为头部数据块,头部数据块的内容信息为空,头部数据块的次序信息指示第一次序。该头部数据块指示该数据块的后续数据块就是目标业务数据的内容数据块。
在步骤S604,按照目标业务数据的内容的顺序依次存储各个内容数据块,其中各个内容数据块的次序信息根据内容信息的顺序依次递增。为了确保目标业务数据的可读性,各个内容数据块的次序信息应该确保准确,保证按次序信息所指明的顺序读取各个内容数据块的内容信息就可以得到目标业务数据。
在步骤S605,响应于目标业务数据的各个内容数据块均被存储,生成并存储尾部数据块,其中尾部数据块的首尾标识信息指示数据块为尾部数据块,尾部数据块的内容信息为空,尾部数据块的次序信息指示最后一个次序。该尾部数据块指示目标业务数据的内容数据块已经全部获取。
在图6所示的实施例中,提供了针对流式数据的处理方法,其中获取的流式数据的各个数据分组被处理成各个数据块,这允许目标客户端请求数据中台传送目标业务数据时,数据中台可以异步进行这两个过程,即一边从外部获取流式数据并存储在存储区,另一边将所存储的流式数据传送给目标客户端,不需要将流式数据的所有分组合并成一个大的数据块进行存储,从而也不需要获得全部流式数据后再传送给目标客户端。显然,这可以显著提高数据的传送效率,并且提高用户体验。
图8是根据本申请的一些实施例的存储数据块的示意图。如图8所示,目标业务数据的数据分组被确定为4个内容数据块,为该目标业务数据分别生成了头部数据块和尾部数据块,共计6个数据块,由此构成目标业务数据的各个数据块。
在一些实施例中,存储区的存储方案可以采用远程字典服务结合Lua脚本语言来实现,其中每个业务数据对应单独的连续的存储空间。图8是根据本申请的一些实施例的存储业务数据的示意图。
如图8所示,存储区存储有M个业务数据(M为大于2的正整数),每个业务数据的存储地址的首地址与一个索引对应,每个业务数据都被分成多个数据块并且在存储区的连续的地址中按顺序存储。
在一些实施例中,存储区的各个存储地址具有对应的版本信息,版本信息指示在对应的存储地址已经进行过写入操作的次数,并且在存储地址存储头部数据块,包括:首先获取存储地址对应的版本信息;然后响应于存储地址对应的版本信息指示存储地址已经进行过写入操作的次数为0,将头部数据块存储到存储地址,并将存储地址对应的版本信息修改为指示存储地址已经进行过写入操作的次数为1。
如果业务数据A和业务数据B具有相同的索引,则导致业务数据A和业务数据B被存储在相同的存储地址,所存储的数据产生混乱。在该实施例中,为每个存储地址提供版本信息,一旦业务数据A初次被写入索引对应的存储地址,则该存储地址的版本信息被设置为1,则业务数据B准备写入时,因为该存储地址不是0,所以无法写入业务数据B,这可以防止产生混淆,确保写入操作的原子性。
在一些实施例中,将目标业务数据传送给目标客户端,包括下述步骤:首先根据索引确定目标业务数据的过期时间;然后响应于当前时间没有达到目标业务数据的过期时间,根据索引在存储区提取目标业务数据的头部数据块、各个内容数据块和尾部数据块;最后根据预设通信协议,将所提取的数据块传送给目标客户端。
如果当前时间达到目标业务数据的过期时间,则意味着在其索引对应的存储地址所存储的数据可能不再是目标业务数据,所以可以重新获取目标业务数据。因为在存储区存储目标业务数据时,存储的数据具体包括头部数据块、各个内容数据块和尾部数据块,所以在传送目标业务数据时需要将这些数据库一一提取出来,保证数据传送的完整性和有效性。在传送数据块时,无需全部提取后再传送,可以一边提取一边传送,即当前提取了多少数据块就传送多少数据块,这样可以提高传送效率。因为可以一边提取一边传送,所以所提取的数据块可以指示当前所提取的数据块。
图9是根据本申请的一些实施例的提取目标业务数据的示意图。在图9所示的实施例中,根据索引在存储区提取目标业务数据的头部数据块、各个内容数据块和尾部数据块,包括下述步骤。
在步骤S901,提取头部数据块。因为索引的存储地址存储着头部数据块,所以应当先提取头部数据块。
在步骤S902,响应于没有提取到头部数据块并且针对头部数据块的提取次数不超过第一数量,每隔第一预定时间段再次提取头部数据块。因为在提取目标业务数据时,头部数据块可能尚未生成并存储,所以第一次提取可能提取不到头部数据块。这时可以重复提取头部数据块。为了避免无意义的提取并节约计算资源,可以每隔第一预定时间段提取一次头部数据块,例如每隔2秒提取一次头部数据块。如果多次提取均未提取到头部数据块,这意味着目标业务数据的获取过程可能出现故障,或者存储区出现故障,等等。在该实施例中,允许提取第一数量的次数。为了维护用户体验,作为示例,这时可以不再提取目标业务数据,告知目标客户端出现故障。
在步骤S903,响应于提取到头部数据块,将头部数据块确定为当前提取的数据块并循环执行下述步骤。提取到头部数据块,意味着后续的一定数量的数据块都是关于目标业务数据的数据块。
在步骤S904,根据当前提取的数据块的次序信息来提取后续一个数据块。因为各个内容数据块的次序信息体现了存储顺序,所以当提取到第N个(N为大于1的正整数)时,紧接着存储的数据块应该是第N+1个数据块。理论上,下一个提取的数据块的次序信息应该是N+1,所以这里按次序信息来提取后续一个数据块。
在步骤S905,响应于没有提取到后续一个数据块并且针对后续一个数据块的提取次数不超过第二数量,每隔第二预定时间段再次提取后续一个数据块。与步骤S902类似,因为数据中台可以一边获取目标业务数据的数据分组,一边将获取到的数据分组存储到存储区,一边将存储的数据块传送给目标客户端。所以在提取后续一个数据块时,数据中台可能还未将其存储到存储区,导致第一次提取“后续一个数据块”可能提取不到该数据块。这时可以重复提取“后续一个数据块”。为了避免无意义的提取并节约计算资源,可以每隔第二预定时间段提取一次“后续一个数据块”,例如每隔2秒提取一次“后续一个数据块”。如果多次提取均未提取到“后续一个数据块”,这意味着目标业务数据的获取过程可能出现故障,或者存储区出现故障,等等。在该实施例中,允许提取第二数量的次数,例如提取5次或10次。在该实施例中,第一预定时间段可以与第二预定时间段相同或不同,第一数量可以与第二数量相同或不同。
在步骤S906,响应于针对后续一个数据块的提取次数超过第二数量,停止该循环从而停止提取目标业务数据。为了维护用户体验,这时可以不再提取目标业务数据,告知目标客户端出现故障。
在步骤S907,响应于提取到后续一个数据块并且后续一个数据块是尾部数据块,停止该循环从而停止提取目标业务数据。提取到尾部数据块意味着目标业务数据已经提取完毕,无需再提取其他数据。
在步骤S908,响应于提取到后续一个数据块并且后续一个数据块是内容数据块,将后续一个数据块确定为当前提取的数据块。通过不断重复提取,来提取全部的内容数据块和尾部数据块,以得到目标业务数据。
图10是根据本申请的一些实施例的提取目标业务数据的流程图。在1001处开始。首先在1002处基于从目标客户端获取的统一资源定位符中解析索引,以得到目标业务数据的索引。然后确定该索引对应的目标业务数据的过期时间以在1003处判断是否过期,如果过期了,则在1010处结束提取。如果没有过期,则在1004处提取头部数据块。如果暂时没有提取成功,则在1005处判断提取次数是否超过第一数量,如果超过了,则在1010处结束提取。如果没有超过,则可以继续提取。如果提取到头部数据块,则将该头部数据块作为当前数据块,在1006处提取后续一个数据块。类似地,在1007处判断提取后续一个数据块的次数是否超过第二数量,如果超过了,则在1010处结束提取。如果没有超过,则可以继续提取。如果提取到后续一个数据块,则在1008处判断该数据块是否是尾部数据块,如果是尾部数据块,则在1010处结束提取。如果不是尾部数据块,则可以在1009处对提取的数据块进行处理,例如根据预设通信协议来生成数据分组,处理完毕后将其作为当前数据块,回到1006处继续提取后一个数据块,以继续1006处的处理逻辑。
图11是根据申请的一些实施例的数据传送方法的架构图。
在该实施例中,目标业务数据为流式数据。目标客户端1101向接入层1102传送数据传送请求,该数据传送请求指示传送目标业务数据。接入层1102将该数据传送请求传送给数据中台1103。数据中台1103从资源层1104获取目标业务数据并存储到存储区1105(其可以设置在数据中台本地)中,其中数据中台无需获取全部目标业务数据后再开始存储,可以一边获取一边存储。数据中台1103还为目标业务数据生成索引,并将该索引传送给接入层1102。接入层1102将该索引传送给目标客户端1101。之后数据中台1103与目标客户端1101根据SSE协议建立通信,目标客户端1101将索引作为统一资源定位符中的一个请求参数以传送给数据中台1103。数据中台1103根据本申请的提取目标业务数据的相关实施例来从存储区1105中提取已经存储的数据块,并处理所提取的数据块已将其传送给目标客户端1101,从而实现目标业务数据的传送。
在该实施例中,数据中台1103无需获取全部目标业务数据后再开始存储,也无需将目标业务数据全部存储到存储区1105后再开始传送给目标客户端1101,数据中台1103可以一边从资源层1104获取目标业务数据,一边将所获取的数据存储到存储区1105,一边将所存储的目标业务数据提取出来并传送给目标客户端1101,这可以极大地提高数据传送效率,提高用户体验,以及降低对目标客户端的通信能力的要求。
图12是根据本申请的一些实施例的数据传送装置1200的示例性结构框图。所述数据传送装置1200包括:获取模块1201、处理模块1202、第一传送模块1203、第二传送模块1204。获取模块1201被配置为从目标客户端经由接入层获取数据传送请求,其中数据传送请求指示传送目标业务数据;处理模块1202被配置为获取目标业务数据并生成目标业务数据的索引;第一传送模块1203被配置为经由接入层将目标业务数据的索引传送给目标客户端;第二传送模块1204被配置为根据预设通信协议与目标客户端建立通信连接并且响应于从目标客户端接收到目标业务数据的索引,将目标业务数据传送给目标客户端。
应注意,上述各种模块可以以软件或硬件或两者的组合来实现。多个不同模块可以在同一软件或硬件结构中实现,或者一个模块可以由多个不同的软件或硬件结构实现。
在根据本申请一些实施例的数据传送装置中,在传送目标业务数据阶段,数据中台与目标客户端直接建立通信,所以接入层无需提供多个消息队列,数据中台也无需维护这些消息队列,降低了数据中台的任务量,并且,每个目标客户端都与数据中台按照统一的通信协议连接,所以目标客户端至多需要设置两个通信协议,这可以降低对目标客户端的通信能力的要求;因为重新建立了通信连接,而数据中台在新的通信连接(例如建立基于超文本传输协议的通信连接)中不能主动传送数据,所以数据中台在与目标客户端建立通信连接之前,为目标业务数据确定了索引,并将该索引传送给目标客户端,以及在数据中台接收到索引后才向目标客户端传送目标业务数据,这可以将主动传送目标业务数据的过程转化为目标客户端主动拉取目标业务数据过程,间接实现了主动传送目标业务数据的目的,使得在目标客户端与数据中台建立基于超文本传输协议的通信连接的情况下,仍然可以传送流式数据。
图13图示了示例系统1300,其包括代表可以实现本文描述的各种方法的一个或多个系统和/或设备的示例计算设备1310。计算设备1310可以是例如服务提供商的服务器、与服务器相关联的设备、片上系统、和/或任何其它合适的计算设备或计算系统。上面参照图12描述的数据传送装置1200可以采取计算设备1310的形式。替换地,数据传送装置1200可以以应用1316的形式被实现为计算机程序。
如图示的示例计算设备1310包括彼此通信耦合的处理系统1311、一个或多个计算机可读介质1312以及一个或多个I/O接口1313。尽管未示出,但是计算设备1310还可以包括系统总线或其他数据和命令传送系统,其将各种组件彼此耦合。系统总线可以包括不同总线结构的任何一个或组合,总线结构诸如存储器总线或存储器控制器、外围总线、通用串行总线、和/或利用各种总线架构中的任何一种的处理器或局部总线。还构思了各种其他示例,诸如控制和数据线。
处理系统1311代表使用硬件执行一个或多个操作的功能。因此,处理系统1311被图示为包括可被配置成处理器、功能块等的硬件元件1314。这可以包括在硬件中实现为专用集成电路或使用一个或多个半导体形成的其它逻辑器件。硬件元件1314不受其形成的材料或其中采用的处理机构的限制。例如,处理器可以由(多个)半导体和/或晶体管(例如,电子集成电路(IC))组成。在这样的上下文中,处理器可执行指令可以是电子可执行指令。
计算机可读介质1312被图示为包括存储器1315。存储器1315表示与一个或多个计算机可读介质相关联的存储器/存储容量。存储器1315可以包括易失性介质(诸如随机存取存储器(RAM))和/或非易失性介质(诸如只读存储器(ROM)、闪存、光盘、磁盘等)。存储器1315可以包括固定介质(例如,RAM、ROM、固定硬盘驱动器等)以及可移动介质(例如,闪存、可移动硬盘驱动器、光盘等)。计算机可读介质1312可以以下面进一步描述的各种其他方式进行配置。
一个或多个I/O接口1313代表允许用户使用各种输入设备向计算设备1310输入命令和信息并且可选地还允许使用各种输出设备将信息呈现给用户和/或其他组件或设备的功能。输入设备的示例包括键盘、光标控制设备(例如,鼠标)、麦克风(例如,用于语音输入)、扫描仪、触摸功能(例如,被配置成检测物理触摸的容性或其他传感器)、相机(例如,可以采用可见或不可见的波长(诸如红外频率)将不涉及触摸的运动检测为手势)等等。输出设备的示例包括显示设备、扬声器、打印机、网卡、触觉响应设备等。因此,计算设备1310可以以下面进一步描述的各种方式进行配置以支持用户交互。
计算设备1310还包括应用1316。应用1316可以例如是数据传送装置1200的软件实例,并且与计算设备1310中的其他元件相组合地实现本文描述的技术。
本文可以在软件硬件元件或程序模块的一般上下文中描述各种技术。一般地,这些模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元素、组件、数据结构等。本文所使用的术语“模块”,“功能”和“组件”一般表示软件、固件、硬件或其组合。本文描述的技术的特征是与平台无关的,意味着这些技术可以在具有各种处理器的各种计算平台上实现。
所描述的模块和技术的实现可以存储在某种形式的计算机可读介质上或者跨某种形式的计算机可读介质传输。计算机可读介质可以包括可由计算设备1310访问的各种介质。作为示例而非限制,计算机可读介质可以包括“计算机可读存储介质”和“计算机可读信号介质”。
与单纯的信号传输、载波或信号本身相反,“计算机可读存储介质”是指能够持久存储信息的介质和/或设备,和/或有形的存储装置。因此,计算机可读存储介质是指非信号承载介质。计算机可读存储介质包括诸如易失性和非易失性、可移动和不可移动介质和/或以适用于存储信息(诸如计算机可读指令、数据结构、程序模块、逻辑元件/电路或其他数据)的方法或技术实现的存储设备之类的硬件。计算机可读存储介质的示例可以包括但不限于RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字通用盘(DVD)或其他光学存储装置、硬盘、盒式磁带、磁带,磁盘存储装置或其他磁存储设备,或其他存储设备、有形介质或适于存储期望信息并可以由计算机访问的制品。
“计算机可读信号介质”是指被配置成诸如经由网络将指令发送到计算设备1310的硬件的信号承载介质。信号介质典型地可以将计算机可读指令、数据结构、程序模块或其他数据体现在诸如载波、数据信号或其它传输机制的调制数据信号中。信号介质还包括任何信息传递介质。术语“调制数据信号”是指这样的信号,该信号的特征中的一个或多个被设置或改变,从而将信息编码到该信号中。作为示例而非限制,通信介质包括诸如有线网络或直接连线的有线介质以及诸如声、RF、红外和其它无线介质的无线介质。
如前,硬件元件1314和计算机可读介质1312代表以硬件形式实现的指令、模块、可编程器件逻辑和/或固定器件逻辑,其在一些实施例中可以用于实现本文描述的技术的至少一些方面。硬件元件可以包括集成电路或片上系统、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)以及硅中的其它实现或其他硬件设备的组件。在这种上下文中,硬件元件可以作为执行由硬件元件所体现的指令、模块和/或逻辑所定义的程序任务的处理设备,以及用于存储用于执行的指令的硬件设备,例如,先前描述的计算机可读存储介质。
前述的组合也可以用于实现本文的各种技术和模块。因此,可以将软件、硬件或程序模块和其它程序模块实现为在某种形式的计算机可读存储介质上和/或由一个或多个硬件元件1314体现的一个或多个指令和/或逻辑。计算设备1310可以被配置成实现与软件和/或硬件模块相对应的特定指令和/或功能。因此,例如通过使用处理系统的计算机可读存储介质和/或硬件元件1314,可以至少部分地以硬件来实现将模块实现为可由计算设备1310作为软件执行的模块。指令和/或功能可以由一个或多个制品(例如,一个或多个计算设备1310和/或处理系统1311)可执行/可操作以实现本文所述的技术、模块和示例。
在各种实施方式中,计算设备1310可以采用各种不同的配置。例如,计算设备1310可以被实现为包括个人计算机、台式计算机、多屏幕计算机、膝上型计算机、上网本等的计算机类设备。计算设备1310还可以被实现为包括诸如移动电话、便携式音乐播放器、便携式游戏设备、平板计算机、多屏幕计算机等移动设备的移动装置类设备。计算设备1310还可以实现为电视类设备,其包括具有或连接到休闲观看环境中的一般地较大屏幕的设备。这些设备包括电视、机顶盒、游戏机等。
本文描述的技术可以由计算设备1310的这些各种配置来支持,并且不限于本文所描述的技术的具体示例。功能还可以通过使用分布式系统、诸如通过如下所述的平台1322而在“云”1320上全部或部分地实现。
云1320包括和/或代表用于资源1324的平台1322。平台1322抽象云1320的硬件(例如,服务器)和软件资源的底层功能。资源1324可以包括在远离计算设备1310的服务器上执行计算机处理时可以使用的应用和/或数据。资源1324还可以包括通过因特网和/或通过诸如蜂窝或Wi-Fi网络的订户网络提供的服务。
平台1322可以抽象资源和功能以将计算设备1310与其他计算设备连接。平台1322还可以用于抽象资源的分级以提供遇到的对于经由平台1322实现的资源1324的需求的相应水平的分级。因此,在互连设备实施例中,本文描述的功能的实现可以分布在整个系统1300内。例如,功能可以部分地在计算设备1310上以及通过抽象云1320的功能的平台1322来实现。
应当理解,为清楚起见,参考不同的功能单元对本申请的实施例进行了描述。然而,将明显的是,在不偏离本申请的情况下,每个功能单元的功能性可以被实施在单个单元中、实施在多个单元中或作为其它功能单元的一部分被实施。例如,被说明成由单个单元执行的功能性可以由多个不同的单元来执行。因此,对特定功能单元的参考仅被视为对用于提供所描述的功能性的适当单元的参考,而不是表明严格的逻辑或物理结构或组织。因此,本申请可以被实施在单个单元中,或者可以在物理上和功能上被分布在不同的单元和电路之间。
本申请提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算设备执行上述各种可选实现方式中提供的数据传送方法。
尽管已经结合一些实施例描述了本申请,但是其不旨在被限于在本文中所阐述的特定形式。相反,本申请的范围仅由所附权利要求来限制。附加地,尽管单独的特征可以被包括在不同的权利要求中,但是这些可以可能地被有利地组合,并且包括在不同权利要求中不暗示特征的组合不是可行的和/或有利的。特征在权利要求中的次序不暗示特征必须以其工作的任何特定次序。此外,在权利要求中,词“包括”不排除其它元件,并且术语“一”或“一个”不排除多个。权利要求中的附图标记仅作为明确的例子被提供,不应该被解释为以任何方式限制权利要求的范围。
Claims (12)
1.一种数据传送方法,所述方法由数据中台执行,所述数据中台与接入层之间具有通信连接,其特征在于,所述方法包括:
从目标客户端经由所述接入层获取数据传送请求,其中所述数据传送请求指示传送目标业务数据;
获取所述目标业务数据并生成所述目标业务数据的索引;
经由所述接入层将所述目标业务数据的索引传送给所述目标客户端;
根据预设通信协议与所述目标客户端建立通信连接并且响应于从所述目标客户端接收到所述目标业务数据的索引,将所述目标业务数据传送给所述目标客户端。
2.根据权利要求1所述的方法,其特征在于,所述根据预设通信协议与所述目标客户端建立通信连接,包括:
根据服务器传送事件(SSE)协议与所述目标客户端建立通信连接。
3.根据权利要求2所述的方法,其特征在于,所述响应于从所述目标客户端接收到所述目标业务数据的索引,将所述目标业务数据传送给所述目标客户端,包括:
从所述目标客户端获取统一资源定位符;
响应于所述统一资源定位符中的一个请求参数是所述索引,将所述目标业务数据传送给所述目标客户端。
4.根据权利要求1所述的方法,其特征在于,所述生成所述目标业务数据的索引,包括:
确定加密算法的版本、当前时间的时间戳、所述目标业务数据的格式、所述目标业务数据的过期时间以及对应所述目标业务数据的随机数;
对所述加密算法的版本、当前时间的时间戳、所述目标业务数据的格式、所述目标业务数据的过期时间以及对应所述目标业务数据的随机数的组合进行加密,得到对应于所述目标业务数据的加密编码;
将所述加密编码转换为字符串,作为所述目标业务数据的索引。
5.根据权利要求1所述的方法,其特征在于,所述目标业务数据是包括多个数据分组的流式数据,
并且所述方法还包括:
根据所述目标业务数据的索引在存储区中确定所述目标业务数据的存储地址;
为每个数据分组附加控制信息以得到相应的每个内容数据块,其中所述控制信息至少包括首尾标识信息、内容信息和次序信息,每个内容数据块的内容信息指示所述目标业务数据的部分内容,每个内容数据块的首尾标识信息为空;
生成头部数据块并在所述存储地址存储所述头部数据块,其中所述头部数据块的首尾标识信息指示所述数据块为头部数据块,所述头部数据块的内容信息为空,所述头部数据块的次序信息指示第一次序;
按照所述目标业务数据的内容的顺序依次存储各个内容数据块,其中各个内容数据块的次序信息根据内容信息的顺序依次递增;
响应于所述目标业务数据的各个内容数据块均被存储,生成并存储尾部数据块,其中所述尾部数据块的首尾标识信息指示所述数据块为尾部数据块,所述尾部数据块的内容信息为空,所述尾部数据块的次序信息指示最后一个次序。
6.根据权利要求5所述的方法,其特征在于,所述存储区的各个存储地址具有对应的版本信息,所述版本信息指示在对应的存储地址已经进行过写入操作的次数,
并且所述在所述存储地址存储所述头部数据块,包括:
获取所述存储地址对应的版本信息;
响应于所述存储地址对应的版本信息指示所述存储地址已经进行过写入操作的次数为0,将所述头部数据块存储到所述存储地址,并将所述存储地址对应的版本信息修改为指示所述存储地址已经进行过写入操作的次数为1。
7.根据权利要求5所述的方法,其特征在于,所述将所述目标业务数据传送给所述目标客户端,包括:
根据所述索引确定所述目标业务数据的过期时间;
响应于当前时间没有达到所述目标业务数据的过期时间,根据所述索引在所述存储区提取所述目标业务数据的头部数据块、各个内容数据块和尾部数据块;
根据所述预设通信协议,将所提取的数据块传送给所述目标客户端。
8.根据权利要求7所述的方法,其特征在于,所述根据所述索引在所述存储区提取所述目标业务数据的头部数据块、各个内容数据块和尾部数据块,包括:
提取所述头部数据块;
响应于没有提取到所述头部数据块并且针对所述头部数据块的提取次数不超过第一数量,每隔第一预定时间段再次提取所述头部数据块;
响应于提取到所述头部数据块,将所述头部数据块确定为当前提取的数据块并循环执行下述步骤:
根据当前提取的数据块的次序信息来提取后续一个数据块;
响应于没有提取到所述后续一个数据块并且针对所述后续一个数据块的提取次数不超过第二数量,每隔第二预定时间段再次提取所述后续一个数据块;
响应于针对所述后续一个数据块的提取次数超过所述第二数量,停止该循环从而停止提取所述目标业务数据;
响应于提取到所述后续一个数据块并且所述后续一个数据块是尾部数据块,停止该循环从而停止提取所述目标业务数据;响应于提取到所述后续一个数据块并且所述后续一个数据块是内容数据块,将所述后续一个数据块确定为当前提取的数据块。
9.一种数据传送装置,所述装置属于数据中台,所述数据中台与接入层之间具有通信连接,其特征在于,所述装置包括:
获取模块,其被配置为从目标客户端经由所述接入层获取数据传送请求,其中所述数据传送请求指示传送目标业务数据;
处理模块,其被配置为获取所述目标业务数据并生成所述目标业务数据的索引;
第一传送模块,其被配置为经由所述接入层将所述目标业务数据的索引传送给所述目标客户端;
第二传送模块,其被配置为根据预设通信协议与所述目标客户端建立通信连接并且响应于从所述目标客户端接收到所述目标业务数据的索引,将所述目标业务数据传送给所述目标客户端。
10.一种计算设备,其特征在于,所述计算设备包括:
存储器,其被配置成存储计算机可执行指令;
处理器,其被配置成当所述计算机可执行指令被处理器执行时执行如权利要求1-8中的任一项所述的方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,当所述计算机可执行指令被执行时,执行如权利要求1-8中的任一项所述的方法。
12.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机可执行指令,计算机可执行指令在被执行时实现根据权利要求1至8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311302371.0A CN117082124B (zh) | 2023-10-10 | 2023-10-10 | 数据传送方法、装置、设备、介质及产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311302371.0A CN117082124B (zh) | 2023-10-10 | 2023-10-10 | 数据传送方法、装置、设备、介质及产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117082124A true CN117082124A (zh) | 2023-11-17 |
CN117082124B CN117082124B (zh) | 2024-02-13 |
Family
ID=88713698
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311302371.0A Active CN117082124B (zh) | 2023-10-10 | 2023-10-10 | 数据传送方法、装置、设备、介质及产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117082124B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120158699A1 (en) * | 2010-12-17 | 2012-06-21 | Creel Christopher T | Repackageable virtualized transparent access to heterogeneous data sources |
CN107948324A (zh) * | 2017-12-29 | 2018-04-20 | 广东欧珀移动通信有限公司 | 请求传输系统、方法、装置及存储介质 |
CN108200158A (zh) * | 2017-12-29 | 2018-06-22 | 广东欧珀移动通信有限公司 | 请求传输系统、方法、装置及存储介质 |
CN113190778A (zh) * | 2021-04-30 | 2021-07-30 | 深圳壹账通创配科技有限公司 | 业务数据推送方法、系统、计算机设备及计算机存储介质 |
CN114040005A (zh) * | 2021-10-18 | 2022-02-11 | 中国联合网络通信集团有限公司 | 一种数据传输方法、装置及存储介质 |
CN116366652A (zh) * | 2023-04-13 | 2023-06-30 | 中国银行股份有限公司 | 分布式应用运维方法、系统、装置、服务器及网关设备 |
CN116684703A (zh) * | 2023-05-26 | 2023-09-01 | 中国电信股份有限公司广东研究院 | 基于邻近服务通信协议的流媒体数据传输方法及相关设备 |
-
2023
- 2023-10-10 CN CN202311302371.0A patent/CN117082124B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120158699A1 (en) * | 2010-12-17 | 2012-06-21 | Creel Christopher T | Repackageable virtualized transparent access to heterogeneous data sources |
CN107948324A (zh) * | 2017-12-29 | 2018-04-20 | 广东欧珀移动通信有限公司 | 请求传输系统、方法、装置及存储介质 |
CN108200158A (zh) * | 2017-12-29 | 2018-06-22 | 广东欧珀移动通信有限公司 | 请求传输系统、方法、装置及存储介质 |
CN113190778A (zh) * | 2021-04-30 | 2021-07-30 | 深圳壹账通创配科技有限公司 | 业务数据推送方法、系统、计算机设备及计算机存储介质 |
CN114040005A (zh) * | 2021-10-18 | 2022-02-11 | 中国联合网络通信集团有限公司 | 一种数据传输方法、装置及存储介质 |
CN116366652A (zh) * | 2023-04-13 | 2023-06-30 | 中国银行股份有限公司 | 分布式应用运维方法、系统、装置、服务器及网关设备 |
CN116684703A (zh) * | 2023-05-26 | 2023-09-01 | 中国电信股份有限公司广东研究院 | 基于邻近服务通信协议的流媒体数据传输方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN117082124B (zh) | 2024-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108306877B (zh) | 基于node js的用户身份信息的验证方法、装置和存储介质 | |
US10356156B2 (en) | Method and device for loading webpage | |
JP6164747B2 (ja) | 協働環境におけるフロー制御のためのおよび信頼性のある通信のための方法 | |
CN110838071A (zh) | 保单数据的处理方法、装置及服务器 | |
US10412137B2 (en) | Video processing method, mobile terminal, and server | |
EP3234803A1 (en) | Network based static font subset management | |
CN111756847B (zh) | 网站支持https协议的方法和装置 | |
CN104077310A (zh) | 加载资源文件的方法、设备和系统 | |
US11809380B2 (en) | Information sharing method, apparatus, electronic device, and storage medium | |
US20120197971A1 (en) | Enhanced web-browsing system and method | |
WO2015027430A1 (zh) | 服务器和文件分享方法 | |
CN109885347B (zh) | 一种配置数据的获取方法、装置及终端、系统、存储介质 | |
CN112689020A (zh) | 一种消息传输方法、消息中间件、电子设备及存储介质 | |
WO2012028033A1 (zh) | 消息更新的方法和装置 | |
CN101770511A (zh) | 一种用于移动通讯设备终端加快回退操作的浏览系统及其应用方法 | |
CN117082124B (zh) | 数据传送方法、装置、设备、介质及产品 | |
CN113542335A (zh) | 一种信息共享方法、装置、电子设备及存储介质 | |
US20120254728A1 (en) | Content acquiring method and client terminal | |
CN113901374A (zh) | 网页刷新方法、装置、电子设备及存储介质 | |
CN110955398B (zh) | 一种二维码显示方法、装置、计算机设备及存储介质 | |
CN113515213A (zh) | 一种光标形状同步方法、远程浏览系统、设备及存储介质 | |
CN103227827A (zh) | 请求资源的方法和装置 | |
KR20110072645A (ko) | Xml과 json 데이터의 압축 및 분할 전송시스템 | |
CN108809900B (zh) | 一种统一资源访问的框架及方法 | |
CN110795670A (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 |