一种应用程序运行方法、装置和系统与流程

文档序号:28056543发布日期:2021-12-17 22:20阅读:70来源:国知局
一种应用程序运行方法、装置和系统与流程

1.本发明涉及计算机技术领域,特别涉及一种应用程序运行方法、装置和系统。


背景技术:

2.随着业务的快速发展,前端应用变得越来越复杂,为了降低复杂度,单应用会逐渐拆分成多个子应用,每个子应用可以独立的构建和部署。这些子应用间其实会存在很多通过相同代码包实现的相同功能。为了最小化开发和维护成本,这些代码包需要被多应用共同使用。
3.目前多应用程序共同使用同一代码包的方式主要有:基于npm的模块共用和基于script的模块共用。
4.在实现本技术的过程中,发明人发现现有实现多应用共同使用同一代码包的方式效率低,人工维护成本高。


技术实现要素:

5.有鉴于此,本技术提供一种应用程序运行方法、装置和系统,提高了多应用共同使用共用代码包的效率,避免了重复加载和打包。
6.为解决上述技术问题,本技术的技术方案是这样实现的:
7.在一个实施例中,提供了一种应用程序运行方法,所述方法包括:
8.获取应用发布设备发布的应用程序对应的应用代码包;
9.在运行所述应用代码包时,若确定所述应用代码包中包含cdn地址,则通过所述cdn地址调用对应的共用代码包运行;
10.其中,所述共用代码包被多个应用程序共用;所述cdn地址为所述共用代码包在cdn服务器上的存储地址。
11.在另一个实施例中,提供了一种应用程序运行方法,所述方法包括:
12.应用发布设备向管理服务器发送获取cdn地址的请求;其中,所述cdn地址为所述共用代码包在cdn服务器上的存储地址;
13.所述管理服务器接收到获取cdn地址的请求时,根据存储的对应关系获取所述请求中携带的应用标识对应的cdn地址,并响应给所述应用发布设备;其中,所述对应关系为应用标识和cdn地址的对应关系;
14.所述应用发布设备接收到所述管理服务器响应的cdn地址时,使用所述cdn地址替代对应的共用代码包进行应用代码包打包并发布;
15.程序运行设备在运行所述应用发布设备发布的应用代码包时,通过所述应用代码包中的cdn地址调用对应的共用代码包运行。
16.在另一个实施例中,提供了一种应用程序运行装置,所述装置包括:获取单元和运行单元;
17.所述获取单元,用于获取应用发布设备发布的应用程序对应的应用代码包;
18.所述运行单元,用于在运行所述获取单元获取的应用代码包时,若确定所述应用代码包中包含cdn地址,则通过所述cdn地址调用对应的共用代码包运行;其中,所述共用代码包被多个应用程序共用;所述cdn地址为所述共用代码包在cdn服务器上的存储地址。
19.在另一个实施例中,提供了一种应用程序运行系统,所述系统包括:应用发布设备、管理服务器和程序运行设备;
20.所述应用发布设备,向管理服务器发送获取cdn地址的请求;接收到所述管理服务器响应的cdn地址时,使用所述cdn地址替代对应的共用代码包进行应用代码包打包并发布;其中,所述cdn地址为所述共用代码包在cdn服务器上的存储地址;
21.所述管理服务器,接收到获取cdn地址的请求时,根据存储的对应关系获取所述请求中携带的应用标识对应的cdn地址,并响应给所述应用发布设备;其中,所述对应关系为应用标识与cdn地址的对应关系;
22.所述程序运行设备,在运行所述应用发布设备发布的应用代码包时,通过所述应用代码包中的cdn地址调用对应的共用代码包运行。
23.在另一个实施例中,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现应用程序运行方法的步骤。
24.在另一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现所述应用程序运行方法的步骤。
25.由上面的技术方案可见,上述实施例中在打包应用代码包时,针对应用复用共用代码包的情况,使用共用代码包的cdn地址替代共用代码包进行应用代码包打包,在运行所述应用代码包时,当遍历到所述cdn地址时,通过所述cdn地址引用对应的共用代码包进行运行。该方案提高了多应用共同使用共用代码包的效率,避免了重复加载和打包。
附图说明
26.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
27.图1为本技术实施例中应用程序运行系统示意图;
28.图2为本技术实施例一中应用程序运行流程示意图;
29.图3为本技术实施例二中应用程序运行流程示意图;
30.图4为本技术实施例中应用于上述技术的装置结构示意图;
31.图5为本发明实施例提供的电子设备的实体结构示意图。
具体实施方式
32.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
33.本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其他步骤或单元。
34.下面以具体实施例对本发明的技术方案进行详细说明。下面几个具体实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
35.本技术实施例中提供一种应用程序运行方法,应用于应用程序运行系统中,使用webpack和node.js技术实现。webpack作为javascript应用程序的静态模块打包器,支持动态引入和模块命名;node.js是一个开源与跨平台的javascript运行时环境,简单的说是运行在服务端的javascript。
36.本文提出在webpack的动态引入中,结合node.js服务,按需加载共用代码的javascript文件,避免共用代码包更新效率低,同时使用模块命名避免模块(共用代码包)被重复加载和打包,而且在多应用中,通过公共的webpack插件实现应用间公共库的自动分离,解决了人工维护的问题。
37.参见图1,图1为本技术实施例中应用程序运行系统示意图。图1中所示的系统包括:应用发布设备、管理服务器和程序运行设备;
38.所述应用发布设备,向管理服务器发送获取cdn地址的请求;接收到所述管理服务器响应的cdn地址时,使用所述cdn地址替代对应的共用代码包进行应用代码包打包并发布;
39.所述管理服务器,接收到获取cdn地址的请求时,根据存储的对应关系获取所述请求中携带的应用标识对应的cdn地址,并响应给所述应用发布设备;其中,所述对应关系为应用标识与cdn地址的对应关系;
40.所述程序运行设备,在运行所述应用发布设备发布的应用代码包时,通过所述应用代码包中的cdn地址调用对应的共用代码包运行。
41.其中,所述系统进一步包括:应用开发设备;
42.所述应用开发设备,向所述管理服务器发送获取共用代码包标识的请求;接收到所述管理服务器响应的共用代码包标识列表时,在所述共用代码包标识列表中选择应用标识对应的共用代码包标识;
43.所述管理服务器,接收到所述应用开发设备发送的获取共用代码包标识的请求时,向所述应用开发设备响应注册的共用代码包标识列表。
44.其中,
45.所述应用开发设备,进一步用于将应用标识和共用代码标识的对应关系注册到所述管理服务器;
46.所述管理服务器,进一步用于接收到应用开发设备注册应用标识和共用代码包标识的对应关系时,存储所述应用标识和共用代码包标识的对应关系;接收到共用代码发布设备注册存储共用代码包的cdn地址时,根据存储的所述应用标识和共用代码包标识的对
应关系,存储所述cdn地址与应用标识的对应关系。
47.其中,所述装置进一步包括:共用代码包开发设备;
48.所述共用代码包开发设备,将共用代码包的共用代码包标识注册到所述管理服务器上;
49.所述管理服务器,接收到所述共用代码包注册的共用代码包标识时,存储到共用代码包标识列表中。
50.其中,所述装置进一步包括:共用代码发布设备;
51.所述共用代码发布设备,在发布共用代码包时,获取所述共用代码包的cdn地址;若获取到,则将所述共用代码包发布到cdn服务器的所述cdn地址对应的位置;若未获取到,则在所述cdn服务器上指定存储所述共用代码包的cdn地址,并注册到所述管理服务器上。
52.在具体实现时,若该共用代码包之前发布过,则在存储所述共用代码包的cdn地址对应的存储位置更新对应的共用代码包;否则,存储到指定cdn地址对应的存储位置,并向所述管理服务器注册所述cdn地址和共用代码包标识的对应关系。
53.本技术实施例中具体实现时,应用开发设备、应用发布设备、共用代码包开发设备、共用代码包发布设备可以部署在一台设备上实现,也可以部署在多台设备上实现,本技术实施例对此不进行限制。
54.一个共用代码包被多个应用共用,每个应用可以使用一个或多个共用代码包。
55.本技术实施例中在打包应用代码包时,针对应用复用共用代码包的情况,使用共用代码包的cdn地址替代共用代码包进行应用代码包打包,在运行所述应用代码包时,当遍历到所述cdn地址时,通过所述cdn地址引用对应的共用代码包进行运行。该方案提高了多应用共同使用共用代码包的效率,避免了重复加载和打包,以及人工维护的问题。
56.在共用代码包更新时,只要存储在cdn服务器上的cdn地址无变化,则不需要重新打包应用代码包,解决了共用代码包更新效率低的问题。
57.实施例一
58.参见图2,图2为本技术实施例一中应用程序运行流程示意图。具体步骤为:
59.步骤201,应用发布设备向管理服务器发送获取cdn地址的请求。
60.步骤202,所述管理服务器接收到获取cdn地址的请求时,根据存储的对应关系获取所述请求中携带的应用标识对应的cdn地址,并响应给所述应用发布设备。
61.管理服务器上存储的所述对应关系为应用标识与cdn地址的对应关系。
62.管理服务器获取应用标识与cdn地址的对应关系的具体实现为:
63.共用代码包开发设备将共用代码包的共用代码包标识注册到所述管理服务器上;
64.管理服务器接收到所述共用代码包注册的共用代码包标识时,存储到共用代码包标识列表中。
65.应用开发设备向所述管理服务器发送获取共用代码包标识的请求;
66.管理服务器接收到所述应用开发设备发送的获取共用代码包标识的请求时,向所述应用开发设备响应注册的共用代码包标识列表。
67.应用开发设备接收到所述管理服务器响应的共用代码包标识列表时,在所述共用代码包标识列表中选择应用标识对应的共用代码包标识。
68.应用开发设备将获取的应用标识和共用代码标识的对应关系注册到所述管理服
务器;
69.管理服务器接收到所述应用开发设备注册应用标识和共用代码包标识的对应关系时,存储所述应用标识和共用代码包标识的对应关系。
70.共用代码发布设备在发布共用代码包时,获取所述共用代码包的cdn地址;若获取到,则将所述共用代码包发布到cdn服务器的所述cdn地址对应的位置;若未获取到,则在所述cdn服务器上指定存储所述共用代码包的cdn地址,并注册到所述管理服务器上。
71.在具体实现时,若该共用代码包之前发布过,则在存储所述共用代码包的cdn地址对应的存储位置更新对应的共用代码包;否则,存储到指定cdn地址对应的存储位置,并向所述管理服务器注册所述cdn地址和共用代码包标识的对应关系。
72.管理服务器接收到共用代码发布设备注册存储共用代码包的cdn地址时,根据存储的所述应用标识和共用代码包标识的对应关系,存储所述cdn地址与应用标识的对应关系。
73.步骤203,应用发布设备接收到所述管理服务器响应的cdn地址时,使用所述cdn地址替代对应的共用代码包进行应用代码包打包并发布。
74.本技术实施例中在应用发布设备在发布应用代码包时,引用cdn地址代替所述cdn地址对应的共用代码包进行应用代码包打包并发布,拦截动态引入相关代码包进行应用代码包打包,避免了重复加载和打包,以及人工维护的问题。
75.步骤204,程序运行设备在运行所述应用发布设备发布的应用代码包时,通过所述应用代码包中的cdn地址调用对应的共用代码包运行。
76.程序运行设备在运行应用代码包时,如果遍历到代码包,则直接运行所述代码;如果遍历到cdn地址,则通过所述cdn地址调用对应的共用代码包进行运行。
77.本技术实施例中在打包应用代码包时,针对应用复用共用代码包的情况,使用共用代码包的cdn地址替代共用代码包进行应用代码包打包,在运行所述应用代码包时,当遍历到所述cdn地址时,通过所述cdn地址引用对应的共用代码包进行运行。该方案提高了多应用共同使用共用代码包的效率,避免了重复加载和打包,以及人工维护的问题。
78.在共用代码包更新时,只要存储在cdn服务器上的cdn地址无变化,则不需要重新打包应用代码包,解决了共用代码包更新效率低的问题。
79.实施例二
80.参见图3,图3为本技术实施例三中应用程序运行流程示意图。具体步骤为:
81.步骤301,获取应用发布设备发布的应用程序对应的应用代码包。
82.步骤302,在运行所述应用代码包时,若确定所述应用代码包中包含cdn地址,则通过所述cdn地址调用对应的共用代码包运行。
83.其中,所述共用代码包被多个应用程序共用;所述cdn地址为所述共用代码包在cdn服务器上的存储地址。
84.所述应用代码包被打包时,使用共用代码包的cdn地址替代所述共用代码包进行应用代码包打包。
85.在具体实现时,应用代码包由应用发布设备打包、发布;
86.应用发布设备在打包应用代码包时,获取与其他应用共用的共用代码包的cdn地址的具体实现包括:
87.管理服务器上存储应用标识与cdn地址的对应关系;
88.应用发布设备从所述管理服务器上获取要打包的应用代码包对应的应用标识所对应的cdn地址。
89.此时获取的cdn地址可能是一个,也可能是多个,当前应用对应几个共用代码包则会获取几个cdn地址。
90.管理服务器获取应用标识与cdn地址的对应关系的具体实现为:
91.共用代码包开发设备将共用代码包的共用代码包标识注册到所述管理服务器上;
92.管理服务器接收到所述共用代码包注册的共用代码包标识时,存储到共用代码包标识列表中。
93.应用开发设备向所述管理服务器发送获取共用代码包标识的请求;
94.管理服务器接收到所述应用开发设备发送的获取共用代码包标识的请求时,向所述应用开发设备响应注册的共用代码包标识列表。
95.应用开发设备接收到所述管理服务器响应的共用代码包标识列表时,在所述共用代码包标识列表中选择应用标识对应的共用代码包标识。
96.应用开发设备将获取的应用标识和共用代码标识的对应关系注册到所述管理服务器;
97.管理服务器接收到所述应用开发设备注册应用标识和共用代码包标识的对应关系时,存储所述应用标识和共用代码包标识的对应关系。
98.共用代码发布设备在发布共用代码包时,获取所述共用代码包的cdn地址;若获取到,则将所述共用代码包发布到cdn服务器的所述cdn地址对应的位置;若未获取到,则在所述cdn服务器上指定存储所述共用代码包的cdn地址,并注册到所述管理服务器上。
99.在具体实现时,若该共用代码包之前发布过,则在存储所述共用代码包的cdn地址对应的存储位置更新对应的共用代码包;否则,存储到指定cdn地址对应的存储位置,并向所述管理服务器注册所述cdn地址和共用代码包标识的对应关系。
100.管理服务器接收到共用代码发布设备注册存储共用代码包的cdn地址时,根据存储的所述应用标识和共用代码包标识的对应关系,存储所述cdn地址与应用标识的对应关系。
101.本技术实施例中具体实现时,应用开发设备、应用发布设备、共用代码包开发设备、共用代码包发布设备可以部署在一台设备上实现,也可以部署在多台设备上实现,本技术实施例对此不进行限制。
102.一个共用代码包被多个应用共用,每个应用可以使用一个或多个共用代码包。
103.本技术实施例中在打包应用代码包时,针对应用复用共用代码包的情况,使用共用代码包的cdn地址替代共用代码包进行应用代码包打包,在运行所述应用代码包时,当遍历到所述cdn地址时,通过所述cdn地址引用对应的共用代码包进行运行。该方案提高了多应用共同使用共用代码包的效率,避免了重复加载和打包,以及人工维护的问题。
104.在共用代码包更新时,只要存储在cdn服务器上的cdn地址无变化,则不需要重新打包应用代码包,解决了共用代码包更新效率低的问题。
105.基于同样的发明构思,本技术实施例中还提供一种应用程序运行装置。参见图4,图4为本技术实施例中应用于上述技术的装置结构示意图。所述装置包括:获取单元401和
运行单元402;
106.获取单元401,用于获取应用发布设备发布的应用程序对应的应用代码包;
107.运行单元402,用于在运行获取单元401获取的应用代码包时,若确定所述应用代码包中包含cdn地址,则通过所述cdn地址调用对应的共用代码包运行;其中,所述共用代码包被多个应用程序共用;所述cdn地址为所述共用代码包在cdn服务器上的存储地址。
108.优选地,
109.所述应用代码包被打包时,使用共用代码包的cdn地址替代所述共用代码包进行应用代码包打包。
110.上述实施例的单元可以集成于一体,也可以分离部署;可以合并为一个单元,也可以进一步拆分成多个子单元。
111.在另一个实施例中,还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述应用程序运行方法的步骤。
112.在另一个实施例中,还提供一种计算机可读存储介质,其上存储有计算机指令,所述指令被处理器执行时可实现所述应用程序运行方法中的步骤。
113.图5为本发明实施例提供的电子设备的实体结构示意图。如图5所示,该电子设备可以包括:处理器(processor)510、通信接口(communications interface)520、存储器(memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储器530中的逻辑指令,以执行如下方法:
114.获取应用发布设备发布的应用程序对应的应用代码包;
115.在运行所述应用代码包时,若确定所述应用代码包中包含cdn地址,则通过所述cdn地址调用对应的共用代码包运行;
116.其中,所述共用代码包被多个应用程序共用;所述cdn地址为所述共用代码包在cdn服务器上的存储地址。
117.此外,上述的存储器530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
118.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
119.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上
述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
120.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1