分布式Web应用存储系统、服务系统和访问方法转让专利

申请号 : CN201910471322.7

文献号 : CN110290182B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 商彦磊乔秀全刘茹月王姮力

申请人 : 北京邮电大学

摘要 :

本发明实施例提供一种分布式Web应用存储系统、服务系统和访问方法,该存储系统包括点对点文件系统,所述点对点文件系统包括多个点对点文件系统节点;其中,文件夹和文件分隔为若干大小相等的块,块和文件对应的哈希值作为地址标识,对应于节点地址标识分布到多个点对点文件系统节点中。本发明实施例针对现有技术中Web服务中心化带来的效率低下、过度依赖骨干网的问题,通过将Web应用分布式存储至点对点系统中,根据用户在浏览器的请求来在点对点系统中寻找文件资源或镜像资源,并将其实例化处理来进一步寻找用户所需资源,能够有效解决Web服务中心化带来的高延迟、过度依赖骨干网的弊端。

权利要求 :

1.一种分布式Web服务系统,其特征在于,包括分布式Web浏览器和分布式Web应用存储系统,其中,所述分布式Web浏览器用于发起资源访问请求,解析用户提交的资源访问请求,得到若干资源的地址标志,根据所述地址标志对应的节点地址标志,确定资源存储的节点;

所述分布式Web浏览器支持基于内容的地址标识和支持点对点的寻址方式;

所述分布式Web应用存储系统,包括点对点文件系统,所述点对点文件系统包括多个点对点文件系统节点;其中,文件夹和文件分隔为若干大小相等的块,块和文件对应的哈希值作为地址标识,对应于节点地址标识分布到多个点对点文件系统节点中;

所述点对点文件系统包括文件夹根节点、存储静态资源的第一文件夹子节点、存储带有逻辑处理能力的脚本或容器镜像的第二文件夹子节点、对应于第一文件夹子节点的静态页面存储器节点以及对应于第二文件夹子节点的JavaScript脚本存储器节点或者容器镜像文件存储器节点;依据所述地址标识异或距离最近的原则,将所述文件夹和文件存储到相应的节点中;

其中,依据所述文件夹和文件的地址标识,找到存储所述文件夹和文件的点对点文件系统的节点地址标识;其他节点或应用通过所述点对点文件系统节点地址标识发起对所述文件夹和文件的资源访问请求;通过每个资源的分块生成资源根节点的哈希值,上级文件节点的哈希值由该节点的所有子节点的哈希值获取,以使每一节点具有唯一的哈希值进行标识,通过每一节点存储的链式结构存储下属节点哈希值进行链接;

所述分布式Web浏览器不使用超文本传输协议HTTP传输协议。

2.根据权利要求1所述的分布式Web服务系统,其特征在于,所述点对点文件系统节点还用于在所述点对点文件系统节点上启动、部署、运行、管理和终止容器或虚拟机实例;所述分布式Web服务系统用于将需要进行计算和逻辑处理的部分封装为容器或虚拟机镜像,并以文件的形式存储到所述点对点文件系统节点中。

3.根据权利要求2所述的分布式Web服务系统,其特征在于,对于资源请求中包含所述计算和逻辑处理,所述分布式Web浏览器用于根据所述文件夹和文件资源访问请求找到相应的容器或虚拟机镜像,并由存储该镜像的所述点对点文件系统节点实例化,进行相应的计算和逻辑处理,将计算和逻辑处理所得的结果返回给所述分布式Web浏览器或者持久化存储到所述点对点文件系统以便后续访问。

4.一种基于权利要求1-3中任一项所述的分布式Web服务系统的分布式Web应用访问方法,其特征在于,包括:在所述分布式Web浏览器中输入分布式Web应用的所述地址标识,或者在Web页面中点击链接,生成分布式Web资源请求,解析分布式Web资源请求,得到相应的文件夹、文件、镜像以及块的地址标识;

对于资源请求对应的地址标识是分布式Web浏览器可处理的文件,分布式Web浏览器对存储该文件的点对点文件系统节点发起资源获取请求;或者对于资源请求对应的地址标识是负责计算和逻辑处理的容器或虚拟机镜像,分布式Web浏览器对存储该镜像的点对点文件系统节点发起资源实例化请求,所述点对点文件系统节点在接收到资源获取请求时,找到请求中相应的文件,返回给分布式Web浏览器。

5.根据权利要求4所述的分布式Web应用访问方法,其特征在于,还包括:

所述点对点文件系统节点在接收到资源实例化请求时,先从子节点寻找该容器或虚拟机镜像计算或逻辑处理的保存结果,并将找到的结果返回给分布式Web浏览器;

如果未找到,则查找请求中相应的容器或虚拟机镜像,实例化运行镜像中包含的计算或逻辑处理,并将计算或逻辑处理的结果返回给分布式浏览器。

说明书 :

分布式Web应用存储系统、服务系统和访问方法

技术领域

[0001] 本发明涉及Web服务技术领域,更具体地,涉及一种分布式Web应用存储系统、服务系统和访问方法。

背景技术

[0002] Web服务是一种跨语言和跨操作系统平台的远程调用技术。通常,将发起资源调用请求、渲染返回内容并以图形界面呈现结果的应用称为浏览器,将提供资源存储部署、逻辑计算和响应浏览器请求的应用称为服务端。目前,Web服务多采用中心化服务模式,采用HTTP协议传输数据,采用XML格式封装数据。
[0003] 以服务器为核心向众多的浏览器提供服务的中心化服务模式导致目前的Web服务技术存在明显的缺陷。如,过度依赖骨干网络,骨干网络负荷过高,高峰期间易崩溃、高延迟。同时,数据和处理集中于服务器,服务器负载集中,服务器宕机将导致所有服务停止。并且,服务器地址暴露于互联网上,是显式的攻击目标,易攻难防。

发明内容

[0004] 为了克服上述问题或者至少部分地解决上述问题,本发明实施例提供一种分布式Web应用存储系统、服务系统和访问方法。
[0005] 根据本发明实施例的一个方面,提供一种分布式Web应用存储系统,包括点对点文件系统,所述点对点文件系统包括多个点对点文件系统节点;其中,文件夹和文件分隔为若干大小相等的块,块和文件对应的哈希值作为地址标识,对应于节点地址标识分布到多个点对点文件系统节点中。
[0006] 根据本发明实施例的另一方面,提供一种分布式Web服务系统,包括分布式Web浏览器和上述任一的分布式Web应用存储系统,其中,所述分布式Web浏览器用于发起资源访问请求,解析用户提交的资源访问请求,得到若干资源的地址。
[0007] 根据本发明实施例的又一方面,提供一种基于上述任一分布式 Web服务系统的分布式Web应用的访问方法,包括:
[0008] 在所述分布式Web浏览器中输入分布式Web应用的所述地址标识,或者在Web页面中点击链接,生成分布式Web资源请求,解析分布式Web资源请求,得到相应的文件夹、文件、镜像以及块的地址标识;
[0009] 对于资源请求对应的地址标识是分布式Web浏览器可处理的文件,分布式Web浏览器对存储该文件的点对点文件系统节点发起资源获取请求;或者
[0010] 对于资源请求对应的地址标识是负责计算和逻辑处理的容器或虚拟机镜像,分布式Web浏览器对存储该镜像的点对点文件系统节点发起资源实例化请求,所述点对点文件系统节点在接收到资源获取请求时,找到请求中相应的文件,返回给分布式Web浏览器。
[0011] 本发明实施例针对现有技术中Web服务中心化带来的效率低下、过度依赖骨干网的问题,通过将Web应用分布式存储至点对点系统中,根据用户在浏览器的请求来在点对点系统中寻找文件资源,或镜像资源并将其实例化处理来进一步寻找用户所需资源,能够有效解决Web 服务中心化带来的高延迟、过度依赖骨干网的弊端。

附图说明

[0012] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0013] 图1为本发明实施例提供的一种Web应用的文件结构的示意图;
[0014] 图2为本发明实施例提供的一种Web应用的文件夹在点对点文件系统中存储的结构示意图;
[0015] 图3为本发明实施例提供的分布式Web应用访问方法的流程示意图;
[0016] 图4为根据本发明实施例提供的分布式Web服务方法中查找请求资源中不包含计算和逻辑处理能力的流程示意图;
[0017] 图5为根据本发明实施例提供的分布式Web服务方法中请求分布式Web应用具体静态文件Page的示意图;
[0018] 图6为根据本发明实施例提供的分布式Web服务方法中查找请求资源中涉及的数据量较少、处理逻辑较为简单的流程示意图;
[0019] 图7为根据本发明实施例提供的分布式Web服务方法中请求分布式Web应用具体JavaScript脚本文件的示意图;
[0020] 图8为根据本发明实施例提供的分布式Web服务方法中请求资源中涉及的数据量较大、处理逻辑较为复杂的流程示意图;
[0021] 图9为根据本发明实施例提供的分布式Web服务方法中请求分布式Web应用具体容器镜像Docker image的示意图;
[0022] 图10为本发明实施例提供的分布式Web服务装置的结构示意图;
[0023] 图11为本发明实施例提供的电子设备的实体结构示意图。

具体实施方式

[0024] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明实施例的一部分实施例,而不是全部的实施例。基于本发明实施例中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明实施例保护的范围。
[0025] 总的来说,本申请提供一种分布式Web应用存储系统、分布式 Web服务系统及方法,用以有效解决Web服务中心化带来的诸多弊端。
[0026] 其中,分布式Web应用存储系统使用点对点(Peer-to-Peer)文件系统实现持久化存储,该点对点文件系统是将文件夹(或称为文件目录)和文件分隔为若干大小相等的块,对块和文件进行Hash运算得到的值作为地址标识,分布到多个点对点文件系统节点中进行持久化存储。
[0027] 其中,点对点文件系统将节点的IP地址进行与文件夹和文件相同的Hash处理,得到节点地址标识。
[0028] 其中,点对点文件系统依据地址标识异或XOR距离最近的原则,将文件夹和文件存储到相应的节点中。
[0029] 其中,可以依据文件夹和文件地址标识,找到存储文件夹和文件的点对点文件系统节点地址标识;其他节点或应用可以通过点对点文件系统节点地址标识发起对文件夹和文件的资源访问请求。
[0030] 其中,点对点文件系统节点接收到资源访问请求后,将文件夹和文件返回给发起请求的其他节点或应用。
[0031] 具体地,如图1所示,图1为本发明实施例提供的一种Web应用的文件结构的示意图,其中包括:分布式Web应用文件夹根节点101、分布式Web应用文件中存储静态资源的文件夹102、分布式Web应用文件中存储带有逻辑处理能力的脚本或容器镜像的文件夹103、分布式 Web应用中一个静态页面Page104、分布式Web应用中一个JavaScript 脚本105和分布式Web应用中一个容器镜像文件Docker image 106。
[0032] 其中,在一个实施例中,将分布式Web应用文件存储到点对点文件系统S101文件根节点为该分布式Web应用的根目录。
[0033] 其中,在分布式Web应用中,静态资源如静态页面、图片、音乐等资源存储在分布式Web应用文件中存储静态资源的文件夹102下。
[0034] 其中,对于分布式Web应用文件中存储带有逻辑处理能力的脚本或容器镜像的文件夹103,该文件夹存储的文件为浏览器端可处理的脚本文件如JavaScript文件、WebAssembly程序文件等,以及实例化后可进行计算处理的容器镜像文件。
[0035] 本发明实施例提供的分布式Web应用存储至点对点文件系统,将图1的该分布式Web应用文件进行分块,以梅克尔有向无循环图 (MerkleDAG)的结构存储在点对点文件系统,具体如图2所示。
[0036] 图2为本发明实施例提供的一种Web应用的文件夹在点对点文件系统中存储的结构示意图,其中,201~203为对应101~103文件夹的 Merkle DAG节点,需要说明的是,每一个Merkle DAG节点均有其唯一的哈希。
[0037] 其中,204、207、208为静态页面104的Merkle DAG结构。点对点文件系统将大于256KB的静态页面104进行分块,每块大小为 256KB,并对每个分块进行hash运算得到唯一的hash值进行标识。并将所有分块hash值进行运算得到该静态页面根节点的hash值,在此发明实施例中,静态页面104进行分块,得到207、208两个分块,根据两个分块哈希进行计算得到静态页面Merkle DAG根节点204的哈希。
[0038] 其中,205、209、210为JavaScript脚本文件105的Merkle DAG 结构,206、211~213为容器镜像的Merkle DAG结构。具体细节与上述静态文件Page的Merkle DAG结构的生成过程一致。
[0039] 需要说明的是,通过每个资源的分块生成资源根节点204~206的 hash值。上级文件节点的hash值有文件结构中所有子节点的hash值进行计算得来。图2中Merkle DAG节点202的hash值则由204节点运算而来;Merkle DAG节点203的hash值则由205、206两节点的hash 值进行计算得到;整个Merkle DAG根节点201的hash值则由节点202、 203的hash进行计算得到。
[0040] 通过对资源进行分块和计算各个节点hash值,将本发明实施例提供的分布式Web应用的文件构造成一个Merkle DAG结构。每一节点均有唯一的hash值进行标识。并通过每一节点存储的Link结构存储下属节点hash值进行链接。由此可通过对某一节点的hash值寻址到该文件。
[0041] 在一个实施例中,将点对点系统中每一个节点分配唯一的hash值作为节点的ID,并将本发明实施例提供的分布式Web应用文件的 Merkle DAG节点根据其hash存储到最相近的点对点系统节点中。
[0042] 在本申请的另一个实施例中,提供一种分布式Web服务系统,其中,该系统包括:分布式Web浏览器、点对点(Peer-to-Peer)文件系统。在另一个实施例中,还可以包括容器或虚拟机托管节点。
[0043] 其中,分布式Web浏览器用于发起资源访问请求,解析用户提交的资源访问请求,得到若干资源的地址。
[0044] 在一个实施例中,分布式Web浏览器并不是当前流行浏览器。分布式Web浏览器不使用超文本传输协议HTTP传输协议。
[0045] 其中,分布式Web浏览器可以支持HTML、CSS、JavaScript、 WebWorker、ServiceWorker、WebAssembly等Web标准和技术,不同之处在于Web中各类资源的地址标识与寻址方式。具体地,分布式 Web浏览器支持基于内容的地址标识和支持点对点的寻址方式。
[0046] 其中,分布式Web服务方法不使用Web服务器来存储Web服务所需的各类文件和资源,而是采用上述的文件存储系统。
[0047] 其中,对于Web应用中所需要的计算和逻辑处理能力,分布式 Web服务系统使用基于容器或虚拟机动态构建的方式实现。
[0048] 点对点文件系统节点除提供文件持久化存储功能外,还提供容器或虚拟机的托管能力。容器或虚拟机的托管能力是指在点对点文件系统节点上启动、部署、运行、管理和终止容器或虚拟机实例。
[0049] 分布式Web服务系统在Web应用制作打包时,将需要进行计算和逻辑处理的部分封装为容器或虚拟机镜像,并以文件的形式存储到点对点文件系统。
[0050] 其中,当用户在分布式Web浏览器提交的资源请求中包含计算和逻辑处理能力时,如果涉及的数据量较少、处理逻辑较为简单,应用程序可以选择JavaScript、WebWorker、ServiceWorker、WebAssembly 等Web标准和技术在分布式Web浏览器进行相应的计算和逻辑处理。
[0051] 其中,当用户在分布式Web浏览器提交的资源请求中包含计算和逻辑处理能力时,如果涉及的数据量较大、处理逻辑较为复杂,分布式Web浏览器可以依据文件夹和文件资源访问请求找到相应的容器或虚拟机镜像,并由存储该镜像的点对点文件系统节点实例化,进行相应的计算和逻辑处理。计算和逻辑处理所得的结果返回给分布式Web 浏览器。依据Web应用的需求,还可以将计算和逻辑处理结果持久化存储到点对点文件系统,以便后续访问。
[0052] 其中,在又一个实施例中,提供一种分布式Web应用的存储方法,该方法包括:制作和发布分布式Web应用,将发布的分布式Web应用的文件夹和文件分隔为若干大小相等的块,对块和文件进行Hash运算生成文件夹、文件、镜像以及块的地址标识。
[0053] 其中,对于分布式Web应用的制作。可以使用现有Web应用的制作工具和方法制作分布式Web应用。其中的以文件形式由浏览器处理的部分直接存储为文件。而需要Web服务器实现的计算和逻辑处理封装为容器或虚拟机镜像。
[0054] 其中,对于分布式Web应用的发布。分布式Web应用的发布是将制作好的分布式Web应用,以文件夹和文件的形式存储到点对点文件系统。包括由分布式Web浏览器处理的文件以及容器或虚拟机镜像。
[0055] 进一步的,点对点文件系统是将发布的分布式Web应用的文件夹和文件分隔为若干大小相等的块,对块和文件进行Hash运算生成文件夹、文件、镜像以及块的地址标识。
[0056] 在本申请的又一个实施例中,提供一种分布式Web应用的访问方法,包括:在分布式Web浏览器中输入分布式Web应用的地址标识,或者在Web页面中点击链接,生成分布式Web资源请求,解析分布式Web资源请求,得到相应的文件夹、文件、镜像以及块的地址标识;对于资源请求对应的地址标识是分布式Web浏览器可处理的文件,分布式Web浏览器对存储该文件的点对点文件系统节点发起资源获取请求;如果资源请求对应的地址标识是负责计算和逻辑处理的容器或虚拟机镜像,分布式Web浏览器对存储该镜像的点对点文件系统节点发起资源实例化请求;点对点文件系统节点在接收到资源获取请求时,找到请求中相应的文件,返回给分布式Web浏览器。
[0057] 进一步的,点对点文件系统节点在接收到资源实例化请求时,先从子节点寻找该容器或虚拟机镜像计算或逻辑处理的保存结果;并将找到的结果返回给分布式Web浏览器。如果未找到,则查找请求中相应的容器或虚拟机镜像,实例化运行镜像中包含的计算或逻辑处理,并将计算或逻辑处理的结果返回给分布式浏览器。如果该结果之前未保存,则创建Link和子节点保存该结果;并停止容器或虚拟机实例。
[0058] 进一步的,分布式Web浏览器将收到的请求的文件或者处理结果,经渲染后,以图形界面的形式呈现到分布式Web浏览器中。
[0059] 具体地,图3为本发明实施例提供的分布式Web应用访问方法的流程示意图,如图3所示,该方法包括:
[0060] S301,用户通过分布式Web浏览器发起资源访问请求,分布式 Web浏览器解析用户提交的资源访问请求,得到若干资源的地址;
[0061] 具体而言,本发明实施例首先会通过分布式Web浏览器发送的对资源的访问请求。具体操作时,用户通过所属分布式Web浏览器发起资源访问请求的基础上,通过分布式Web浏览器解析用户提交的资源访问请求,获取访问请求资源的地址。
[0062] S302,基于资源地址标识,找到存储资源的点对点文件系统节点地址标识,通过点对点文件系统节点地址标识发起对所需资源访问请求。
[0063] 可以理解为,根据访问请求资源的地址,在所示点对点文件系统中进行查找,直至找到存储请求访问资源的点对点文件系统的节点地址标识,发起对资源的访问请求。
[0064] S303,点对点文件系统节点接收到资源访问请求后,根据请求进行处理,将资源根据请求进行处理,返回给发起请求的分布式Web浏览器。
[0065] 本发明实施例提供的分布式Web服务方法,通过分布式Web浏览器解析用户提交的资源访问请求,获得资源的地址,寻址点对点文件系统存储的文件,包括用户数据与容器镜像等,并对容器镜像在有需求时,在节点中将查找到的内容组装实例化以提供Web服务,能够有效解决Web服务中心化带来的高延迟、过度依赖骨干网的弊端。
[0066] 本发明实施例提供的分布式Web应用文件以Merkle DAG结构存储在点对点文件系统,即可通过分布式Web浏览器进行资源的访问,来查找或实例化点对点系统中存储的分布式Web应用文件,本发明实施例提供三种资源访问方式。
[0067] 其中,若资源请求中不包含计算和逻辑处理能力,则参考图4,为根据本发明实施例提供的分布式Web服务方法中查找请求资源中不包含计算和逻辑处理能力的流程示意图,该处理过程对用户请求的静态资源进行服务,应用于用户向分布式Web浏览器请求静态页面、音视频文件等静态资源的情况。
[0068] 如图4所示,分布式Web浏览器请求访问资源的步骤具体包括:
[0069] S401,基于Web服务请求,通过分布式Web浏览器发起资源访问请求,分布式Web浏览器解析用户提交的资源访问请求,根据预设的哈希映射表,寻找请求的资源的哈希值。即根据用户请求对请求访问资源的哈希进行查找,获得所需资源的唯一哈希,即资源的地址以便进行寻址。
[0070] 具体而言,本发明实施例的文件以MerkleDAG数据结构进行分布式存储,依靠文件以及文件分块进行文件寻址。其中,MerkleDAG的节点对象会存储其包含的分块数据以及数组Merkle-link,并存储该节点的所有分块的哈希值。通过查找到文件MerkleDAG根节点的位置,即可通过根节点寻址到所有文件分块。
[0071] 需要说明的是,本发明实施例对文件哈希的查找由分布式Web浏览器执行。图5为根据本发明实施例提供的分布式Web服务方法中请求分布式Web应用具体静态文件Page的示意图,是用户在浏览器请求本发明实施例的分布式Web应用的文件中的静态页面即104所示Page 的示意。图5中用户通过分布式Web浏览器发起对Page资源访问请求,分布式Web浏览器根据用户请求的资源在本地节点维护的文件-哈希映射表进行查找,得到请求访问资源的哈希。
[0072] S402,基于请求的资源的哈希值,利用分布式哈希表,在点对点文件系统中寻址分布式存储的文件分块。
[0073] 也就是说,在根据上述步骤查找到所需文件哈希后,利用分布式哈希表在网络中进行哈希寻址,得到所需文件MerkleDAG结构的根节点的节点地址,并寻址到文件全部分块。
[0074] 参见图5,分布式Web浏览器通过分布式哈希表,得到用户所请求Page即204节点的哈希值。通过分布式哈希表寻址到如图5所示存储Page的MerkleDAG结构的根节点,即204Merkle DAG节点所在网络节点,即图5中的网络节点a,并在此节点根据Merkle-link继续寻址,得到Page的其他全部分块即207以及208分块所在网络节点。得到网络节点b与网络节点e存储文件分块207以及208。
[0075] S403,将寻址到的资源分块进行组装,并将组装资源发送至分布式Web浏览器。
[0076] 本发明实施例中,在文件MerkleDAG结构根节点所在的网络节点,将寻址到的全部文件分块进行组装,并返回客户端浏览器。仍以图5 为参考,网络中所有分块返回分布式Web应用文件中Page文件的根节点204所在网络节点a,在该节点进行组装,如图5过程3,得到完整的Page文件。之后返回至浏览器,如图5过程4,完成用户对该Page 进行请求访问的Web服务。
[0077] 本发明实施例提供的分布式Web访问方法,点对点文件系统针对静态文件提供服务,通过分布式存储文件至点对点文件系统,对用户进行的文件请求进行哈希寻址得到用户所需文件返回至浏览器来解决传统Web服务性能较低、高延迟等现象。
[0078] 其中,根据上述实施例,若用户在分布式Web浏览器提交的资源请求中包含计算和逻辑处理能力时,如果涉及的数据量较少、处理逻辑较为简单,应用程序可以选择JavaScript、WebWorker、ServiceWorker、 WebAssembly等Web标准和技术在分布式Web浏览器进行相应的计算和逻辑处理。
[0079] 参考图6,为根据本发明实施例提供的分布式Web服务方法中查找请求资源中涉及的数据量较少、处理逻辑较为简单的流程示意图,该处理过程对用户请求访问的资源需要进行简单逻辑处理的动态页面进行服务,应用于用户向分布式Web浏览器请求需要进行简单的计算与逻辑处理的请求的情况。
[0080] 如图6所示,分布式Web浏览器请求访问资源的步骤具体包括:
[0081] S601,通过分布式Web浏览器发起资源访问请求,分布式Web浏览器解析用户提交的资源访问请求,根据预设的哈希映射表,寻找请求的资源的哈希值。
[0082] 参考图7,为根据本发明实施例提供的分布式Web服务方法中请求分布式Web应用具体JavaScript脚本文件的示意图,用户在浏览器请求本发明实施例提供的分布式Web应用的文件中的JavaScript脚本文件,即105所示的JavaScript文件。图中用户通过分布式Web浏览器发起对该JavaScript文件资源访问请求,分布式Web浏览器根据用户请求的资源在本地节点维护的文件-哈希映射表进行查找,得到请求访问资源的哈希。具体查询过程与上述实施例的步骤S401类似,此处不再赘述。
[0083] S602,基于请求访问资源的哈希值,利用分布式哈希表,在点对点文件系统节点中寻址分布式存储的文件分块。
[0084] 根据文件哈希在网络中寻址请求访问资源的文件的全部分块。图7  中对JavaScript文件所有分块的寻址过程与上述实施例的步骤S402类似,此处不再赘述。
[0085] S603,将寻址到的文件分块进行文件组装,并将组装文件发送至分布式Web浏览器。
[0086] 具体而言,在根据上述步骤寻址到的文件哈希网络根节点后,将所有文件分块进行组装并返回浏览器。参考图7,网络中所有分块209、210返回该JavaScript文件的根节点205所在网络节点a,在该节点进行组装,如图7过程3,得到完整的该JavaScript文件即105;
将该 JavaScript文件返回至浏览器,如图5过程4。
[0087] S604,分布式Web浏览器利用JS等进行前端的逻辑处理,得到访问结果。
[0088] 图6中过程5为分布式Web浏览器进行对用户请求访问的资源的简单逻辑处理过程,得到用户所需具体的访问请求结果。
[0089] 其中,根据上述各实施例,若用户在分布式Web浏览器提交的资源请求中包含计算和逻辑处理能力时,如果涉及的数据量较大、处理逻辑较为复杂,分布式Web浏览器可以依据文件夹和文件资源访问请求找到相应的容器或虚拟机镜像,并由存储该镜像的点对点文件系统节点实例化,进行相应的计算和逻辑处理。计算和逻辑处理所得的结果返回给分布式Web浏览器。
[0090] 参考图8,为根据本发明实施例提供的分布式Web服务方法中请求资源中涉及的数据量较大、处理逻辑较为复杂的流程示意图,该处理过程对用户请求的需进行复杂计算处理进行服务,应用于用户向浏览器请求需要进行复杂的计算与逻辑处理的请求的情况.[0091] 如图8所示,分布式Web浏览器请求访问资源的步骤具体包括:
[0092] S801,基于Web服务请求,通过分布式Web浏览器发起资源访问请求,分布式Web浏览器解析用户提交的资源访问请求,根据预设的哈希映射表,寻找请求的资源的哈希值。
[0093] 本发明实施例提供的分布式Web服务方法中分布式存储网络处理涉及的数据量较大、处理逻辑较为复杂的示意图。用户通过分布式Web 浏览器发起资源访问请求,分布式Web浏览器根据用户请求的资源在本地节点维护的文件-哈希映射表进行查找,得到请求访问资源的哈希。具体查询过程与上述实施例的步骤S401类似,此处不再赘述。
[0094] S802,基于请求的资源的哈希值,在点对点文件系统中寻址分布式存储的资源分块。资源请求对应的地址标识是负责计算和逻辑处理的容器或虚拟机镜像,分布式Web浏览器对存储该镜像的点对点文件系统根节点发起资源实例化请求。
[0095] 根据上述步骤得到所需资源,通过查找镜像文件-哈希值映射表,得到所需镜像文件哈希值,确定镜像文件所在根哈希的位置,对存储该镜像的点对点文件系统根节点发起资源实例化请求。
[0096] S803,从存储该镜像的点对点文件系统根节点寻找该容器或虚拟机镜像计算或逻辑处理的保存结果,将找到的结果返回给分布式Web 浏览器。
[0097] 从存储该镜像的点对点文件系统根节点通过Merkle-link寻址寻找到该容器或虚拟机镜像计算或逻辑处理的保存结果文件,在结果文件内的搜索保存结果,找到的结果返回给分布式Web浏览器。
[0098] S804,如果未找到保存结果,则查找请求中相应的容器或虚拟机镜像,存储该镜像的点对点文件系统根节点实例化运行镜像中包含的计算或逻辑处理,并将计算或逻辑处理的结果返回给分布式浏览器。
[0099] 本发明实施例根据镜像文件哈希值在网络中寻址镜像文件 MerkleDAG结构根节点所在的网络节点、并根据根节点Merkle-link结构寻址镜像文件全部分块,同时向镜像根节点所在的网络节点发送用户请求。
[0100] 参考图9,为根据本发明实施例提供的分布式Web服务方法中请求分布式Web应用具体容器镜像Docker image的示意图,为用户在浏览器请求本发明实施例提供的分布式Web应用的文件中的容器镜像即 106的实例化请求,所需镜像文件根节点206所在网络节点的地址为网络节点a,之后向该节点a发出寻找该镜像文件的请求。通过Merkle-link 寻址到存储镜像文件分块211、212、213的网络节点b、c、d,节点a 向节点b、c、d发出请求得到镜像文件全部分块。在镜像文件根节点 206所在的网络节点a进行Docker容器镜像的组装,并实例化容器。参考图9,在节点a将Docker容器的全部分块进行组装,并进行容器实例化。图9中过程4即为容器实例化在网络节点a进行计算或逻辑处理的过程。
[0101] S805,保存该结果,创建Link链接该结果,并保存该结果至子节点上。同时停止容器或虚拟机实例。
[0102] 本发明实施例在将计算或逻辑处理的结果返回给分布式浏览器后,计算新结果的哈希值,将结果存储到点对点文件系统相应的节点中,创建镜像的Merkle-link连接新结果。同时结束容器和虚拟机的实例。
[0103] 基于相同的构思,本发明实施例根据上述各实施例提供一种分布式Web服务装置,该装置用于在上述各实施例中实现分布式Web服务。因此,在上述各实施例的分布式Web服务方法中的描述和定义,可以用于本发明实施例中各个执行模块的理解,具体可参考上述实施例,此处不在赘述。
[0104] 基于相同的发明构思,本发明实施例提供的分布式Web服务装置的结构如图10所示,为本发明实施例提供的分布式Web服务装置的结构示意图,该装置可以用于实现上述各方法实施例中分布式Web服务,该装置包括:查找模块1001和处理模块1002。
[0105] 其中,查找模块1001用于分布式Web浏览器发送的Web服务请求,按照预先建立的与资源的查找规则,从点对点文件系统中查找资源。处理模块1002用于处理Web服务请求,按照资源请求中包含计算和逻辑处理能力,从点对点文件系统中查找相应资源或镜像,进行处理反馈到分布式Web浏览器。
[0106] 具体而言,查找模块1001首先会获取分布式Web浏览器提交的Web服务请求。具体操作时,在获取Web服务请求的基础上,寻找模块1001通过分布式Web浏览器发起资源访问请求,分布式Web浏览器解析用户提交的资源访问请求,得到若干资源的地址;依据资源地址标识,找到存储资源的点对点文件系统节点地址标识;通过点对点文件系统节点地址标识发起对资源访问请求;
[0107] 处理模块1002可以根据请求的资源提交的资源请求中包含的计算和逻辑处理能力进行不同处理。根据不同请求中包含的计算和逻辑处理能力不同处理,在点对点文件系统中查找Web服务请求对应的资源,并进行处理,最终将反馈给客请求资源返回分布式Web浏览器。
[0108] 需要说明的是,本发明实施例中分布式存储网络中服务节点都可以接收、发送服务请求,实例化容器进行服务、路由寻址信息等,所有节点平等协作进行网络服务。
[0109] 本发明实施例提供的分布式Web服务装置,通过设置相应的执行模块,在客户端浏览器对不同种类的服务进行相应判别和处理,寻址分布式存储网络中分布式存储的文件,包括用户数据与容器镜像等,并对容器镜像在有需求时,在网络节点中将查找到的内容组装实例化以提供Web服务,能够有效解决Web服务中心化带来的高延迟、过度依赖骨干网的弊端。
[0110] 可以理解的是,本发明实施例中可以通过硬件处理器来实现上述各实施例的装置中的各相关程序模块。并且,本发明实施例的分布式 Web服务装置利用上述各程序模块,能够实现上述各方法实施例的分布式Web服务流程,在用于实现上述各方法实施例中分布式Web服务时,本发明实施例的装置产生的有益效果与对应的上述各方法实施例相同,可以参考上述各方法实施例,此处不再赘述。
[0111] 作为本发明实施例的又一个方面,本实施例根据上述各实施例提供一种电子设备,该电子设备包括存储器、处理器及存储在该存储器上并可在该处理器上运行的计算机程序,该处理器执行该计算机程序时,实现如上述各实施例的分布式Web服务方法的步骤。
[0112] 进一步的,本发明实施例的电子设备还可以包括通信接口和总线。参考图11,为本发明实施例提供的电子设备的实体结构示意图,包括:至少一个存储器1101、至少一个处理器1102、通信接口1103和总线 1104。
[0113] 其中,存储器1101、处理器1102和通信接口1103通过总线1104 完成相互间的通信,通信接口1103用于该电子设备与客户端设备之间的信息传输;存储器1101中存储有可在处理器1102上运行的计算机程序,处理器1102执行该计算机程序时,实现如上述各实施例的分布式Web服务方法的步骤。
[0114] 可以理解为,该电子设备中至少包含存储器1101、处理器1102、通信接口1103和总线1104,且存储器1101、处理器1102和通信接口 1103通过总线1104形成相互间的通信连接,并可完成相互间的通信,如处理器1102从存储器1101中读取分布式Web服务方法的程序指令等。另外,通信接口1103还可以实现该电子设备与客户端设备之间的通信连接,并可完成相互间信息传输,如通过通信接口1103实现分布式Web服务等。
[0115] 电子设备运行时,处理器1102调用存储器1101中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:基于客户端发送的Web服务请求,利用客户端浏览器,判别客户端请求的资源的类型;基于Web服务请求,按照预先建立的与资源的类型对应的查找规则,从分布式存储网络中查找文件,反馈到客户端浏览器等。
[0116] 上述的存储器1101中的程序指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。或者,实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0117] 本发明实施例还根据上述各实施例提供一种非暂态计算机可读存储介质,其上存储有计算机指令,该计算机指令被计算机执行时,实现如上述各实施例的分布式Web服务方法的步骤,如包括:基于客户端发送的Web服务请求,利用客户端浏览器,判别客户端请求的资源的类型;基于Web服务请求,按照预先建立的与资源的类型对应的查找规则,从分布式存储网络中查找文件,反馈到客户端浏览器等。
[0118] 本发明实施例提供的电子设备和非暂态计算机可读存储介质,通过执行上述各实施例所述的分布式Web服务方法,在客户端浏览器对不同种类的服务进行相应判别和处理,寻址分布式存储网络中分布式存储的文件,包括用户数据与容器镜像等,并对容器镜像在有需求时,在网络节点中将查找到的内容组装实例化以提供Web服务,能够有效解决Web服务中心化带来的高延迟、过度依赖骨干网的弊端。
[0119] 可以理解的是,以上所描述的装置、电子设备及存储介质的实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,既可以位于一个地方,或者也可以分布到不同网络单元上。可以根据实际需要选择其中的部分或全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0120] 通过以上实施方式的描述,本领域的技术人员可以清楚地了解,各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如U盘、移动硬盘、ROM、 RAM、磁碟或者光盘等,包括若干指令,用以使得一台计算机设备(如个人计算机,服务器,或者网络设备等)执行上述各方法实施例或者方法实施例的某些部分所述的方法。
[0121] 另外,本领域内的技术人员应当理解的是,在本发明实施例的申请文件中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0122] 本发明实施例的说明书中,说明了大量具体细节。然而应当理解的是,本发明实施例的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本发明实施例公开并帮助理解各个发明方面中的一个或多个,在上面对本发明实施例的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。
[0123] 然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明实施例要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明实施例的单独实施例。
[0124] 最后应说明的是:以上实施例仅用以说明本发明实施例的技术方案,而非对其限制;尽管参照前述实施例对本发明实施例进行了详细的说明,本领域的技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例各实施例技术方案的精神和范围。