CN109831537B - 一种基于p2p自治域的软件模块化预取模型及方法 - Google Patents
一种基于p2p自治域的软件模块化预取模型及方法 Download PDFInfo
- Publication number
- CN109831537B CN109831537B CN201910225547.4A CN201910225547A CN109831537B CN 109831537 B CN109831537 B CN 109831537B CN 201910225547 A CN201910225547 A CN 201910225547A CN 109831537 B CN109831537 B CN 109831537B
- Authority
- CN
- China
- Prior art keywords
- application software
- software module
- autonomous domain
- prefetching
- layer
- 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
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种基于P2P自治域的软件模块化预取模型及方法,包括净室层,用于统一存储、管理和维护所有的应用软件模块的净室层;多个边缘服务器且每个边缘服务器均能与净室层进行信息交互,用于对净室层内的应用软件模块进行缓存的边缘层;以及包括多个请求同一应用软件模块的若干设备所自动构成的P2P自治域,且多个P2P自治域与边缘层中的边缘服务器之间以及各个P2P自治域内的设备之间均可实现信息交互的终端层。本发明通过基于应用软件模块的方式在“净室层‑边缘层‑终端层”的三级网络模型中的各层级实体之间进行信息交互,缓解了传统服务器高负荷运行时的性能瓶颈,能够快速响应海量用户的请求,提供高效的加载方式以及高安全性能的服务。
Description
技术领域
本发明涉及到软件模块预取加载技术领域,尤其涉及一种基于P2P自治域的软件模块化预取模型及方法。
背景技术
近年来,不断发展起来的云计算、雾计算、透明计算以及大数据等技术,不断拓宽了计算机网络的领域,也为终端用户提供了更便捷的服务。同时,对于海量用户的服务请求,极易对当前的网络模型造成性能瓶颈。此外,由于用户终端过于依赖云服务器,一旦云服务器遭受病毒攻击,将大面积影响用户服务。
鉴于此,解决现有网络模型下的性能和安全问题,使应用软件能安全快速的加载和流畅运行在海量用户的请求下是本技术领域技术人员亟待解决的技术问题。
发明内容
本发明的目的是提供一种基于P2P自治域的软件模块化预取模型及方法,该模型及方法通过P2P自治域构造和软件模块预取技术提高了加载速度,同时结合净室安全服务协议保证了预取模型的高安全性。本发明在一定程度上缓解了现阶段存在的性能和安全问题,提供了高效的加载方式以及高安全性能的服务。
为解决上述技术问题,本发明提供一种基于P2P自治域的软件模块化预取模型,包括:
净室层,用于统一存储、管理和维护所有的应用软件模块;
边缘层,包括多个边缘服务器,且每个边缘服务器均能与净室层进行信息交互,用于对净室层内的应用软件模块进行缓存;
终端层,包括多个请求同一应用软件模块的若干设备所自动构成的P2P自治域,且多个P2P自治域与边缘层中的边缘服务器之间以及各个P2P自治域内的设备之间均可实现信息交互。
优选地,所述净室层由净室安全服务器集群构成。
一种基于P2P自治域的软件模块化预取方法,采用了上述基于P2P自治域的软件模块化预取模型,所述预取方法包括以下步骤:
S1、建立P2P自治域的应用软件模块信息表和应用软件模块依赖关系图,同时打开设备的应用软件并读取所需的应用软件模块;
S2、判断当前设备中是否存在所需的应用软件模块,若存在该应用软件模块,则可直接使用;若不存在该应用软件模块,则通过所述应用软件模块信息表在当前设备的P2P自治域中找到拥有该应用软件模块的其它设备,连接拥有该应用软件模块的最近设备进行下载和使用;
S3、对所述步骤S2中的应用软件模块下载任务进行判断,若为主动下载任务,则在应用软件模块信息表中对该应用软件模块下载次数的计数加一;若不是主动下载任务,则检测当前设备所处的P2P自治域中是否存在其它下载或预取任务;
S4、若当前设备存在其它下载或预取任务,则等待该下载或预取任务完成;若当前设备不存在其它下载或预取任务,则根据所述步骤S1中的应用软件模块依赖关系图导出所需应用软件模块尚未加载过的应用软件模块依赖,并作为当前设备下一次被预取的应用软件模块;
S5、计算所述步骤S4中所有被预取应用软件模块的预取概率,并根据所计算的预取概率对被预取应用软件模块进行排序,优先预取高概率的应用软件模块;
S6、重复所述步骤S2,完成被预取应用软件模块的预取任务。
优选地,所述P2P自治域内的设备均设有允许连接的设备阈值数。
优选地,所述步骤S5中被预取应用软件模块的预取概率P的计算公式可表示为:
与现有技术比较,本发明具有以下技术效果:
本发明基于P2P自治域的软件模块化预取模型采用“净室层-边缘层-终端层”的三级网络模型架构,且各层级实体之间基于应用软件模块的方式进行信息交互,具体来说通过净室安全服务器集群提供了安全可靠的软件服务;同时利用边缘层的边缘服务器分别连接净室安全服务器与P2P自治域,直接为P2P自治域提供服务,不仅缓解了净室服务器的压力,提高了服务效率,而且在净室服务器出现故障时还能继续为用户提供可靠的服务;最后本发明中终端层的各个P2P自治域内的每个设备既是服务器也是客户端,当设备需要某个应用软件模块时,P2P自治域中各个设备之间就会互相请求应用软件模块和共享应用软件模块,也就是说每一个应用软件模块只需要在服务器端请求一次,就会自动在这个P2P自治域中去寻找拥有该应用软件模块的设备进行连接并下载使用,从而有效减轻服务器的压力。本发明通过充分利用净室层、边缘层和终端层的服务能力,大大缓解了传统服务器高负荷运行时的性能瓶颈,能够快速响应海量用户的请求,提供了高效的加载方式以及高安全性能的服务。
附图说明
图1是本发明一种基于P2P自治域的软件模块化预取模型的结构框图,
图2是本发明一种基于P2P自治域的软件模块化预取方法的流程图,
图3是本发明中应用软件模块依赖关系图。
图中:1.净室层,11.净室服务器,2.边缘层,21.边缘服务器,3.终端层,31.P2P自治域。
具体实施方式
为了使本技术领域的人员更好地理解本发明的技术方案,下面结合附图对本发明作进一步的详细说明。
如图1所示,一种基于P2P自治域的软件模块化预取模型,包括:
净室层,用于统一存储、管理和维护所有的应用软件模块;
边缘层,包括多个边缘服务器,且每个边缘服务器均能与净室层进行信息交互,用于对净室层内的应用软件模块进行缓存;
终端层,包括多个请求同一应用软件模块的若干设备所自动构成的P2P自治域,且多个P2P自治域与边缘层中的边缘服务器之间以及各个P2P自治域内的设备之间均可实现信息交互。
本实施例中,所述基于P2P自治域的软件模块化预取模型采用了“净室层-边缘层-终端层”的三级网络模型架构,通过净室安全服务器11集群构成净室层1,有效保证了应用软件的安全性能,同时通过边缘层2的边缘服务器21分别连接净室安全服务器11与P2P自治域31,为所述P2P自治域31直接提供服务,既有效缓解了净室安全服务器11的压力,提高了服务效率,又保证了即使在净室安全服务器11出现故障的情况下也还能继续为用户提供可靠的服务;而且终端层3中的各个P2P自治域31内的每个设备既是服务器也是客户端,通过所述P2P自治域31中各个设备之间的互相请求应用软件模块和共享应用软件模块,有效减轻了服务器的压力。由此可见,本实施例中基于P2P自治域的软件模块化预取模型一方面大大缓解了传统服务器高负荷运行时的性能瓶颈,能够快速响应海量用户的请求,另一方面也提供了高安全性能的服务。
如图1所示,所述净室层1由净室安全服务器11集群构成。本实施例中,所述净室层1通过净室安全服务器11集群构成,统一存储、管理和维护所有的应用软件资源,有效保证了应用软件的安全性,从而提供了安全可靠的应用软件服务。
一种基于P2P自治域的软件模块化预取方法,采用了上述基于P2P自治域的软件模块化预取模型,所述预取方法包括以下步骤:
S1、建立P2P自治域的应用软件模块信息表和应用软件模块依赖关系图,同时打开设备的应用软件并读取所需的应用软件模块;
S2、判断当前设备中是否存在所需的应用软件模块,若存在该应用软件模块,则可直接使用;若不存在该应用软件模块,则通过所述应用软件模块信息表在当前设备的P2P自治域中找到拥有该应用软件模块的其它设备,连接拥有该应用软件模块的最近设备进行下载和使用;
S3、对所述步骤S2中的应用软件模块下载任务进行判断,若为主动下载任务,则在应用软件模块信息表中对该应用软件模块下载次数的计数加一;若不是主动下载任务,则检测当前设备所处的P2P自治域中是否存在其它下载或预取任务;
S4、若当前设备存在其它下载或预取任务,则等待该下载或预取任务完成;若当前设备不存在其它下载或预取任务,则根据所述步骤S1中的应用软件模块依赖关系图导出所需应用软件模块尚未加载过的应用软件模块依赖,并作为当前设备下一次被预取的应用软件模块;
S5、计算所述步骤S4中所有被预取应用软件模块的预取概率,并根据所计算的预取概率对被预取应用软件模块进行排序,优先预取高概率的应用软件模块;
S6、重复所述步骤S2,完成被预取应用软件模块的预取任务。
本实施例中,初始时启动当前设备并读取所需应用软件模块,在所述P2P自治域中找到并连接拥有该应用软件模块的其他合法设备,按需加载应用软件模块,同时通过收集所述P2P自治域中所需应用软件模块的相关信息,计算出该应用软件模块的依赖模块预取概率,提前预测出将要使用的应用软件模块组,进而实现了应用软件的流畅运行。本发明不需要将整个应用软件包下载到当前设备就能流畅运行,极大缩减了应用软件的启动时间,提升了用户的体验感。
如图2所示,所述P2P自治域内的设备均设有允许连接的设备阈值数。本实施例中,所述P2P自治域内设备的允许连接设备阈值数设为20,通过将设备允许连接的设备阈值数设置为一定值,一方面可以有效将请求服务进行分散,避免该设备连接过多的请求设备,导致其服务性能降低;另一方面也可以充分利用设备的服务能力。当当前设备不存在所需应用软件模块时,通过所述应用软件模块信息表在当前设备的P2P自治域中找到拥有该应用软件模块的其它设备,此时这里找到的其他设备的允许连接设备阈值数是低于20的,若该P2P自治域中的所有设备的允许连接设备阈值数均超过20时,则此时当前设备就会向边缘服务器请求相应的应用软件模块,若边缘服务器不存在的话,则会向净室安全服务器请求相应的应用软件模块。
如图2所示,所述步骤S5中被预取应用软件模块的预取概率P的计算公式可表示为:
式(1)中,i表示被预取应用软件模块的序号,Ci表示被预取应用软件模块i的下载次数,n表示被预取应用软件模块的个数,表示所有被预取应用软件模块下载次数之和。本实施例中,通过式(1)可计算出所有被预取应用软件模块的预取概率,然后根据预取概率的高低逐一完成被预取应用软件模块的预取任务。
为了进一步理解本发明的工作原理和技术效果,下面我们以应用软件模块Ⅲ为所需的应用软件模块对本发明中基于P2P自治域的软件模块化预取过程进行详细说明。
如表1和图3所示,表1是P2P自治域的应用软件模块信息表,表1中第一列表示应用软件模块名称,第二列表示拥有该应用软件模块对应的设备名称(其中设备名称后面括号表示已连接的设备数量),第三列表示该应用软件模块对应的依赖应用软件模块;图3是应用软件模块依赖关系图,图3中矩形框表示已加载应用软件模块,菱形框表示当前正在使用模块,椭圆形框表示未加载模块,应用软件模块后的数字表示下载的次数。
表1:P2P自治域的应用软件模块信息表
应用软件模块 | 拥有该应用软件模块的设备 | 依赖应用软件模块 |
I | A(3)、B(4)、C(7) | II、III、IV |
II | B(4)、C(7) | I、IV、VI |
III | E(9)、F(2) | I、V、VII、VIII |
IV | D(4)、K(1) | I、II |
V | A(3)、B(4) | III、VII、X |
VI | B(4)、F(2) | II、X |
VII | A(3) | III、V |
VIII | C(7)、G(4) | III |
IX | F(2)、H(3) | X |
X | C(7) | VI、V、IX |
当当前设备不存在其他下载或预取任务时,则此时设备会根据所建立的应用软件模块依赖关系图导出应用软件模块Ⅲ尚未加载过的应用软件模块依赖,并作为当前设备下一次被预取的应用软件模块,由表1可知,所需应用软件模块Ⅲ的依赖模块(即当前设备写一次被预取的应用软件模块)为模块Ⅰ、Ⅴ、Ⅶ和Ⅷ,根据图3所示,应用软件模块Ⅰ为已加载模块,故此时应用软件模块Ⅲ的依赖模块为模块Ⅴ、Ⅶ和Ⅷ,则可计算出此时各个依赖模块的预取概率,具体为:
PⅤ=9/(9+10+19)=9/38 (2)
PVII=10/(9+10+19)=10/38 (3)
PⅧ=19/(9+10+19)=19/38 (4)
由式(2)、式(3)和式(4)可知,各个依赖模块的预取概率从高到低为模块Ⅷ、Ⅶ和Ⅴ,则当前设备被预取应用软件模块的预取顺序为Ⅷ、Ⅶ和Ⅴ,然后依次完成被预取应用软件模块的预取任务,下面以应用软件模块Ⅷ为例来说明具体预取过程:首先判断当前设备中是否存在所预取的应用软件模块Ⅷ,若存在该应用软件模块Ⅷ,则直接使用;若不存在应用软件模块Ⅷ,则在当前设备的P2P自治域中通过表1找到拥有应用软件模块Ⅷ且不超过允许连接设备阈值数的其它设备,然后连接地理位置最近的其他设备进行应用软件模块Ⅷ的下载;最后依次完成被预取应用软件模块Ⅶ和Ⅴ的预取操作,从而完成当前设备的整个应用软件模块预取,因所有预取应用软件模块的预取操作均相同,故此处不再一一赘述。
以上对本发明所提供的一种基于P2P自治域的软件模块化预取模型及方法进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (3)
1.一种基于P2P自治域的软件模块化预取模型,其特征在于,包括:
净室层,用于统一存储、管理和维护所有的应用软件模块;
边缘层,包括多个边缘服务器,且每个边缘服务器均能与净室层进行信息交互,用于对净室层内的应用软件模块进行缓存;
终端层,包括多个请求同一应用软件模块的若干设备所自动构成的P2P自治域,每个P2P自治域内建立有应用软件模块信息表和应用软件模块依赖关系图,且多个P2P自治域与边缘层中的边缘服务器之间以及各个P2P自治域内的设备之间均可实现信息交互,所述P2P自治域内的设备均设有允许连接的设备阈值数,该设备阈值数为一常数,当当前设备不存在所需应用软件模块时,通过所述应用软件模块信息表在当前设备的P2P自治域中找到拥有该应用软件模块的其它设备,此时,找到的其他设备的允许连接设备阈值数低于所述常数,若该P2P自治域中的所有设备的允许连接设备阈值数均超过所述常数时,则此时当前设备就会向边缘服务器请求响应的应用软件模块,若边缘服务器不存在该应用软件模块的话,则会向净室安全服务器请求相应的应用软件模块,其中所述基于P2P自治域的软件模块化预取模型的预取方法包括以下步骤:
S1、建立P2P自治域的应用软件模块信息表和应用软件模块依赖关系图,同时打开设备的应用软件并读取所需的应用软件模块;
S2、判断当前设备中是否存在所需的应用软件模块,若存在该应用软件模块,则可直接使用;若不存在该应用软件模块,则通过所述应用软件模块信息表在当前设备的P2P自治域中找到拥有该应用软件模块的其它设备,连接拥有该应用软件模块的最近设备进行下载和使用;
S3、对所述步骤S2中的应用软件模块下载任务进行判断,若为主动下载任务,则在应用软件模块信息表中对该应用软件模块下载次数的计数加一;若不是主动下载任务,则检测当前设备所处的P2P自治域中是否存在其它下载或预取任务;
S4、若当前设备存在其它下载或预取任务,则等待该下载或预取任务完成;若当前设备不存在其它下载或预取任务,则根据所述步骤S1中的应用软件模块依赖关系图导出所需应用软件模块尚未加载过的应用软件模块依赖,并作为当前设备下一次被预取的应用软件模块;
S5、计算所述步骤S4中所有被预取应用软件模块的预取概率,并根据所计算的预取概率对被预取应用软件模块进行排序,优先预取高概率的应用软件模块;
S6、重复所述步骤S2,完成被预取应用软件模块的预取任务。
2.如权利要求1所述的基于P2P自治域的软件模块化预取模型,其特征在于,所述净室层由净室安全服务器集群构成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910225547.4A CN109831537B (zh) | 2019-03-22 | 2019-03-22 | 一种基于p2p自治域的软件模块化预取模型及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910225547.4A CN109831537B (zh) | 2019-03-22 | 2019-03-22 | 一种基于p2p自治域的软件模块化预取模型及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109831537A CN109831537A (zh) | 2019-05-31 |
CN109831537B true CN109831537B (zh) | 2021-03-09 |
Family
ID=66871901
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910225547.4A Active CN109831537B (zh) | 2019-03-22 | 2019-03-22 | 一种基于p2p自治域的软件模块化预取模型及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109831537B (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100583820C (zh) * | 2006-09-11 | 2010-01-20 | 思华科技(上海)有限公司 | 内容分发网络的路由系统及方法 |
US8320916B2 (en) * | 2008-05-20 | 2012-11-27 | Alcatel Lucent | Method and apparatus for pre-fetching data in a mobile network environment using edge data storage |
CA2928587C (en) * | 2013-10-25 | 2022-01-04 | Hive Streaming Ab | Aggressive prefetching |
CN104618506B (zh) * | 2015-02-24 | 2019-09-27 | 深圳梨享计算有限公司 | 一种众包的内容分发网络系统、方法与装置 |
-
2019
- 2019-03-22 CN CN201910225547.4A patent/CN109831537B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109831537A (zh) | 2019-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9292620B1 (en) | Retrieving data from multiple locations in storage systems | |
JP5744707B2 (ja) | メモリ使用量照会ガバナのためのコンピュータ実装方法、コンピュータ・プログラム、およびシステム(メモリ使用量照会ガバナ) | |
CN103338252B (zh) | 一种分布式数据库并发存储虚拟请求机制的实现方法 | |
CN108900626B (zh) | 一种云环境下数据存储方法、装置及系统 | |
CN106230971B (zh) | 基于cdn的大文件分发方法 | |
CN108183947A (zh) | 分布式缓存方法及系统 | |
CN106648456B (zh) | 基于用户访问量以及预测机制的动态副本文件访问方法 | |
CN107145384A (zh) | 任务分配方法和系统 | |
CN112600761B (zh) | 一种资源分配的方法、装置及存储介质 | |
CN113010818A (zh) | 访问限流方法、装置、电子设备及存储介质 | |
CN112445857A (zh) | 一种基于数据库的资源配额管理方法和装置 | |
US8930518B2 (en) | Processing of write requests in application server clusters | |
CN109033814A (zh) | 智能合约触发方法、装置、设备及存储介质 | |
CN110287264A (zh) | 分布式数据库的数据批量更新方法、装置以及系统 | |
CN111475108A (zh) | 一种分布式存储方法、计算机设备及计算机可读存储介质 | |
CN110309229A (zh) | 分布式系统的数据处理方法和分布式系统 | |
CN104750614B (zh) | 用于管理存储器的方法和装置 | |
CN107797758B (zh) | 数据存储方法、数据访问方法及装置 | |
CN109831537B (zh) | 一种基于p2p自治域的软件模块化预取模型及方法 | |
CN102170476B (zh) | 一种基于云节点自主学习的云计算方法和装置 | |
Cheluvaraju et al. | Anticipatory retrieval and caching of data for mobile devices in variable-bandwidth environments | |
CN113779412B (zh) | 一种基于区块链网络的消息触达方法、节点和系统 | |
CN109862069A (zh) | 消息处理方法和装置 | |
EP3855707B1 (en) | Systems, methods, and storage media for managing traffic on a digital content delivery network | |
CN111030856B (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 |