CN115390857A - 在系统中部署应用程序的方法、装置、电子设备及介质 - Google Patents
在系统中部署应用程序的方法、装置、电子设备及介质 Download PDFInfo
- Publication number
- CN115390857A CN115390857A CN202211140836.2A CN202211140836A CN115390857A CN 115390857 A CN115390857 A CN 115390857A CN 202211140836 A CN202211140836 A CN 202211140836A CN 115390857 A CN115390857 A CN 115390857A
- Authority
- CN
- China
- Prior art keywords
- application
- sub
- routing information
- application program
- target
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种在系统中部署应用程序的方法、装置、电子设备及介质。通过应用本申请的技术方案,可以在部署应用的过程中,将每个待部署的应用程序在独立开发后,将其分别部署到对应的主应用程序中。从而实现一种在历史应用查询的增量开发的过程中,能够将主应用程序进行拆分化部署的方案。从而一方面实现了方便迭代更新每个子应用程序的目的。另一方面也可以实现在统一的主应用平台上各团队不限制接入应用的技术栈,实现框架的整合,解决了大型项目的迭代问题,同时也实现了各模块代码的松耦。进而也避免了相关技术中存在的,在系统中部署应用程度的复杂程度逐渐变大的问题。
Description
技术领域
本申请中涉及数据处理技术,尤其是一种在系统中部署应用程序的方法、装置、电子设备及介质。
背景技术
在这越来越发达的网络时代,web应用的数据量也随之变的复杂,尤其是前端的开发,也是越来越受重视。
在日常Web应用前端的开发场景中,所用框架各不相同。尤其在复杂场景下,如在不少的业务中,始终会存在一些历史稳定的项目,但是这些项目可能使用的框架较为陈旧,介于日常运营,这些系统很难做全量的技术栈升级或重构,单体应用在一个相对长的时间跨度下,由于参与的人员、团队的增多和变迁,从一个普通应用演变成一个巨石应用后,其下原本可以独立的业务模块和功能,不能独立开发和部署,随之而来会遇到应用难以维护的问题。
发明内容
本申请实施例提供一种在系统中部署应用程序的方法、装置、电子设备及介质。用以解决相关技术中存在的,在系统中部署应用程度的复杂程度逐渐变大的问题。
其中,根据本申请实施例的一个方面,提供的一种在系统中部署应用程序的方法,包括:
获取至少一个子应用程序,所述子应用程序包含对应的子应用实例以及路由信息;
确定系统下的主应用程序中的至少一个接口地址,并检测是否存在有与所述子应用程序中的路由信息相匹配的目标接口地址;
若确定存在,将与所述目标接口地址相匹配的路由信息作为目标路由信息,并将所述目标路由信息对应的子应用实例加载到所述主应用程序中。
可选地,在基于本申请上述方法的另一个实施例中,所述获取至少一个子应用程序,包括:
获取预先部署的用于处理目标业务的子应用实例;
为每个所述子应用实例关联对应的时效性周期以及路由信息;
基于所述时效性周期以及路由信息,为每个所述子应用实例创建对应的子应用程序。
可选地,在基于本申请上述方法的另一个实施例中,在所述基于所述时效性周期以及路由信息,为每个所述子应用实例创建对应的子应用程序之后,还包括:
将所述子应用程序对应的路由信息加载到所述系统中的路由管理器中;以及,将所述子应用程序对应的子应用实例以及时效性周期加载到所述系统中的应用管理器中;
基于所述路由管理器以及所述应用管理器,将所述目标路由信息对应的子应用实例加载到所述主应用程序中。
可选地,在基于本申请上述方法的另一个实施例中,所述基于所述路由管理器以及所述应用管理器,将所述目标路由信息对应的子应用实例加载到所述主应用程序,包括:
检测到启动所述主应用程序时,确定系统下的主应用程序中的至少一个接口地址;
提取所述路由管理器中预加载的,各个子应用示例对应的路由信息;
将所述接口地址与所述路由信息一一进行关联性匹配,确定与所述接口地址相匹配的目标路由信息;
将所述应用管理器中预加载的,与所述目标路由信息相关联的目标子应用示例加载到所述主应用程序中。
可选地,在基于本申请上述方法的另一个实施例中,所述将所述应用管理器中预加载的,与所述目标路由信息相关联的目标子应用示例加载到所述主应用程序中,包括:
获取所述应用管理器中预加载的,所述目标子应用示例对应的时效性周期;
若确定所述时效性周期指向未过期状态,将所述目标子应用示例加载到所述主应用程序中。
可选地,在基于本申请上述方法的另一个实施例中,在所述将与所述目标接口地址相匹配的路由信息作为目标路由信息之后,还包括:
获取所述子应用实例对应的部署框架;
基于所述部署框架,由所述主应用程序在所述系统中为所述子应用实例注册基础配置信息;
对所述子应用实例进行初始化加载,并在初始化加载结束后,将所述基础配置信息关联到已初始化加载的子应用实例中。
可选地,在基于本申请上述方法的另一个实施例中,在所述将所述目标路由信息对应的子应用实例加载到所述主应用程序中之后,还包括:
在所述主应用程序中创建globalState对象,所述globalState对象中包括监听变量参数;
通过修改所述监听变量参数,实现所述主应用程序中各个子应用示例间的信息交互。
其中,根据本申请实施例的又一个方面,提供的一种在系统中部署应用程序的装置,其特征在于,包括:
获取模块,被配置为获取至少一个子应用程序,所述子应用程序包含对应的子应用实例以及路由信息;
确定模块,被配置为确定系统下的主应用程序中的至少一个接口地址,并检测是否存在有与所述子应用程序中的路由信息相匹配的目标接口地址;
加载模块,被配置为若确定存在,将与所述目标接口地址相匹配的路由信息作为目标路由信息,并将所述目标路由信息对应的子应用实例加载到所述主应用程序中。
根据本申请实施例的又一个方面,提供的一种电子设备,包括:
存储器,用于存储可执行指令;以及
显示器,用于与所述存储器以执行所述可执行指令从而完成上述任一所述在系统中部署应用程序的方法的操作。
根据本申请实施例的还一个方面,提供的一种计算机可读存储介质,用于存储计算机可读取的指令,所述指令被执行时执行上述任一所述在系统中部署应用程序的方法的操作。
本申请实施例中,可以获取至少一个子应用程序,子应用程序包含对应的子应用实例以及路由信息;确定系统下的主应用程序中的至少一个接口地址,并检测是否存在有与子应用程序中的路由信息相匹配的目标接口地址;若确定存在,将与目标接口地址相匹配的路由信息作为目标路由信息,并将目标路由信息对应的子应用实例加载到主应用程序中。通过应用本申请的技术方案,可以在部署应用的过程中,将每个待部署的应用程序在独立开发后,将其分别部署到对应的主应用程序中。从而实现一种在历史应用查询的增量开发的过程中,能够将主应用程序进行拆分化部署的方案。从而一方面实现了方便迭代更新每个子应用程序的目的。另一方面也可以实现在统一的主应用平台上各团队不限制接入应用的技术栈,实现框架的整合,解决了大型项目的迭代问题,同时也实现了各模块代码的松耦。进而也避免了相关技术中存在的,在系统中部署应用程度的复杂程度逐渐变大的问题。
下面通过附图和实施例,对本申请的技术方案做进一步的详细描述。
附图说明
构成说明书的一部分的附图描述了本申请的实施例,并且连同描述一起用于解释本申请的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本申请,其中:
图1示出了本申请一实施例所提供的一种在系统中部署应用程序的方法示意图;
图2示出了本申请一实施例所提供的一种在系统中部署应用程序的系统架构示意图;
图3示出了本申请一实施例所提供的一种在系统中部署应用程序的业务流程图;
图4示出了本申请一实施例所提供的一种在系统中,子应用程序之间互相通信的流程示意图;
图5示出了本申请一实施例所提供的一种在系统中部署应用程序的方法的流程示意图;
图6示出了本申请一实施例所提供的一种电子装置的结构示意图;
图7示出了本申请一实施例所提供的一种电子设备的结构示意图;
图8示出了本申请一实施例所提供的一种存储介质的示意图。
具体实施方式
现在将参照附图来详细描述本申请的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本申请的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,不作为对本申请及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
另外,本申请各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
需要说明的是,本申请实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应的随之改变。
下面结合图1-图5来描述根据本申请示例性实施方式的用于进行在系统中部署应用程序的方法。需要注意的是,下述应用场景仅是为了便于理解本申请的精神和原理而示出,本申请的实施方式在此方面不受任何限制。相反,本申请的实施方式可以应用于适用的任何场景。
本申请还提出一种在系统中部署应用程序的方法、装置、电子设备及介质。
图1示意性地示出了根据本申请实施方式的一种在系统中部署应用程序的方法的流程示意图。如图1所示,该方法包括:
S101,获取至少一个子应用程序,子应用程序包含对应的子应用实例以及路由信息。
S102,确定系统下的主应用程序中的至少一个接口地址,并检测是否存在有与子应用程序中的路由信息相匹配的目标接口地址。
S103,若确定存在,将与目标接口地址相匹配的路由信息作为目标路由信息,并将目标路由信息对应的子应用实例加载到主应用程序中。
其中,随着网络时代的发展,web应用也是越来越复杂,尤其是前端的开发,也是越来越受重视。
在日常Web应用前端的开发场景中,所用框架各不相同。尤其在复杂场景下,如在不少的业务中,始终会存在一些历史稳定的项目,但是这些项目可能使用的框架较为陈旧,介于日常运营,这些系统很难做全量的技术栈升级或重构,单体应用在一个相对长的时间跨度下,由于参与的人员、团队的增多和变迁,从一个普通应用演变成一个巨石应用后,其下原本可以独立的业务模块和功能,不能独立开发和部署,随之而来会遇到应用难以维护的问题。
相关技术中,传统的解决方式会考虑利用HTML标签的iframe技术去实现。其中,iframe最大的特性是提供了浏览器原生的硬隔离方案,无论是css隔离、js隔离这类问题都能被解决。但最大的问题在于iframe隔离性无法突破,导致应用间上下文无法被共享,随之带来的开发、产品体验问题。比如浏览器刷新时iframe url状态丢失,历史记录功能无法使用;全局上下文完全隔离,内存变量不共享,对内外系统通信需求,要主应用的cookie透传到根域名的不同的子应用中实现。另外,在iframe技术中,主内容区域由iframe显示,然而当业务人员要求其自带的遮罩层弹窗在浏览器中居中显示,还要浏览器resize时自动居中,这些是无法解决的严重体验问题。
针对上述问题,本申请提出一种将web应用的前端开发从原有的基于一个大框架下的开发,拆分成了基于功能的多个子应用进行开发以及部署。从而实现各个子应用程序之间业务独立,互不影响的目的。即一个子应用程序出问题也不会影响到其他子应用程序。
例如如图2所示,为本申请提出的一种在系统中部署应用程序的架构图,由图可以看出,在将子应用程序1以及子应用程序2部署到主应用程序的过程中。可以通过路由管理器以及应用管理器来实现。具体来说,包括以下步骤实现:
步骤1、获取预先部署的用于处理目标业务的子应用实例,并为每个子应用实例关联对应的时效性周期以及路由信息。
其中,本申请不对子应用实例的数量进行具体限定,例如可以为一个,也可以为多个。
另外,本申请同样不对每个子应用实例所服务的目标业务进行限定,例如在多个子应用实例中,其可以为具备处理相同业务的子应用实例。也可以为处理不同业务的子应用实例。
可选的,预先部署子应用实例可以为由业务人员预先部署的。也可以为根据预设规则自动生成的。本申请对此不作限定。
步骤2、基于时效性周期以及路由信息,为每个子应用实例创建对应的子应用程序。
一种方式中,时效性周期用于指示该子应用实例的有效期。当超过该时效性周期所指向的有效期时,代表该子应用实例已过期。进而即可拒绝将该子应用实例部署到主应用程序中。
另一种方式中,路由信息用于指示该子应用实例的通信路径。可以理解的,当该通信路径指向于主应用程序的某个接口地址时,代表该子应用实例应当加载到该主应用程中。反之则拒绝将该子应用实例部署到主应用程序中。
可选的,该子应用实例关联的时效性周期以及路由信息可以为业务人员在开发子应用程序的过程中根据需要自行进行添加。
步骤3、将子应用程序对应的路由信息加载到系统中的路由管理器中。
步骤4、将子应用程序对应的子应用实例以及时效性周期加载到系统中的应用管理器中。
可以理解的,通过将该将子应用程序对应的路由信息、子应用实例以及时效性周期加载到系统中的路由管理器以及应用管理器中。可以实现在后续部署子应用程序的过程中,主应用程序可以通过从预设的路由管理器以及应用管理器中提取相应信息以实现将子应用实例加载到主应用程序的目的。
其中,对于路由管理器而言,其作用是将所有子应用程序的路由信息统一放在一个总路由里管理。
一种方式中,对于应用管理器而言,其用于将所有子应用打包后的实例放在一个应用管理器里。以使在后续当主应用程序的接口地址和路由管理器中的子应用路由匹配时,通过应用管理器加载对应的子应用示例。
步骤5、检测到启动主应用程序时,确定系统下的主应用程序中的至少一个接口地址。
一种方式中,每个子应用示例在部署到主应用程序的过程中,可以不需要额外安装任何依赖即可接入主应用。作为示例的,由于系统的框架底层采用的是协议入口,只要实现了入口协议规范就可以加载应用。子应用实例可以在自己的入口js导出bootstrap、mount、unmount三个生命周期钩子,以供主应用程序调用。
步骤6、主应用程序提取路由管理器中预加载的,各个子应用示例对应的路由信息,并将接口地址与路由信息一一进行关联性匹配。
步骤7、确定存在有与接口地址相匹配的目标路由信息。
一种方式中,对于应用管理器而言,其用于将所有子应用打包后的实例放在一个应用管理器里。
进一步的,当主应用程序确定存在有至少一个接口地址和路由管理器中的子应用路由匹配时。代表该子应用实例应当加载到该主应用程中。反之则拒绝将该子应用实例部署到主应用程序中。
步骤8、获取应用管理器中预加载的,该目标路由信息对应的目标子应用示例对应的时效性周期,并确定其是否过期。
在此步骤中,主应用程序需要从用管理器中查找并提取出于该目标路由信息相关联的子应用示例。并进一步的对其是否位于过期状态进行判定。
一种方式中,本申请实施例可以通过registerMicroApps(apps,lifeCycles)方法,注册子应用的基础配置信息。以使当浏览器的启动状态(例如通过url是否发生变化来判定)时,会自动检查每一个子应用程序预先注册的activeRule规则,符合规则的应用将会被自动激活。
步骤9、确定时效性周期指向未过期状态,将目标子应用示例加载到主应用程序中。
本申请实施例中,可以获取至少一个子应用程序,子应用程序包含对应的子应用实例以及路由信息;确定系统下的主应用程序中的至少一个接口地址,并检测是否存在有与子应用程序中的路由信息相匹配的目标接口地址;若确定存在,将与目标接口地址相匹配的路由信息作为目标路由信息,并将目标路由信息对应的子应用实例加载到主应用程序中。通过应用本申请的技术方案,可以在部署应用的过程中,将每个待部署的应用程序在独立开发后,将其分别部署到对应的主应用程序中。从而实现一种在历史应用查询的增量开发的过程中,能够将主应用程序进行拆分化部署的方案。从而一方面实现了方便迭代更新每个子应用程序的目的。另一方面也可以实现在统一的主应用平台上各团队不限制接入应用的技术栈,实现框架的整合,解决了大型项目的迭代问题,同时也实现了各模块代码的松耦。进而也避免了相关技术中存在的,在系统中部署应用程度的复杂程度逐渐变大的问题。
可选地,在基于本申请上述方法的另一个实施例中,所述获取至少一个子应用程序,包括:
获取预先署的用于处理目标业务的子应用实例;
为每个所述子应用实例关联对应的时效性周期以及路由信息;
基于所述时效性周期以及路由信息,为每个所述子应用实例创建对应的子应用程序。
可选地,在基于本申请上述方法的另一个实施例中,在所述基于所述时效性周期以及路由信息,为每个所述子应用实例创建对应的子应用程序之后,还包括:
将所述子应用程序对应的路由信息加载到所述系统中的路由管理器中;以及,将所述子应用程序对应的子应用实例以及时效性周期加载到所述系统中的应用管理器中;
基于所述路由管理器以及所述应用管理器,将所述目标路由信息对应的子应用实例加载到所述主应用程序中。
可选地,在基于本申请上述方法的另一个实施例中,所述基于所述路由管理器以及所述应用管理器,将所述目标路由信息对应的子应用实例加载到所述主应用程序,包括:
检测到启动所述主应用程序时,确定系统下的主应用程序中的至少一个接口地址;
提取所述路由管理器中预加载的,各个子应用示例对应的路由信息;
将所述接口地址与所述路由信息一一进行关联性匹配,确定与所述接口地址相匹配的目标路由信息;
将所述应用管理器中预加载的,与所述目标路由信息相关联的目标子应用示例加载到所述主应用程序中。
可选地,在基于本申请上述方法的另一个实施例中,所述将所述应用管理器中预加载的,与所述目标路由信息相关联的目标子应用示例加载到所述主应用程序中,包括:
获取所述应用管理器中预加载的,所述目标子应用示例对应的时效性周期;
若确定所述时效性周期指向未过期状态,将所述目标子应用示例加载到所述主应用程序中。
可选地,在基于本申请上述方法的另一个实施例中,在所述将与所述目标接口地址相匹配的路由信息作为目标路由信息之后,还包括:
获取所述子应用实例对应的部署框架;
基于所述部署框架,由所述主应用程序在所述系统中为所述子应用实例注册基础配置信息;
对所述子应用实例进行初始化加载,并在初始化加载结束后,将所述基础配置信息关联到已初始化加载的子应用实例中。
可选地,在基于本申请上述方法的另一个实施例中,在所述将所述目标路由信息对应的子应用实例加载到所述主应用程序中之后,还包括:
在所述主应用程序中创建globalState对象,所述globalState对象中包括监听变量参数;
通过修改所述监听变量参数,实现所述主应用程序中各个子应用示例间的信息交互。
如图3所示,为本申请实施例中提出的一种在系统中部署应用程序的业务流程图。其中可以看出,本申请实施例中的主应用程序会对接不同框架的子应用程序。作为示例的,主应用程序框架可以采用vue3+vue-router4,会出现在来回切换菜单时,同一uniapp应用会出现页面缓存。一种方式中,本申请还可以通过调整qiankun底层,在切换时主动调用unloadApplication方法卸载掉缓存子应用。
进一步的,在应用间通信的实现上,框架上采用Actions通信,适合业务划分清晰,应用间通信较少的微前端应用场景。其中,全局状态和vuex中的state十分类似,不同的是全局状态可以在主应用和子应用中共享。
一种可能的实施例中,在实现主应用程序下的各个子应用程序间相互进行信息通信的过程可以如图4所示,包括:
其中,可以首先在主应用程序中创建一个全局globalState对象,内部包含一组用于通信的变量,以及两个分别用于修改变量值和监听变量变化的方法:setGlobalState和onGlobalStateChange。
另外,主应用程可以在加载子应用时通过props将全局state传递到其他子应用程序处。一种方式中,子应用程序也可以通过onGlobalStateChange监听全局状态变化,也可以通过setGlobalState修改全局状态。从而实现一种通过修改监听变量参数,来为主应用程序中各个子应用示例间的信息交互的目的。
一种可能的实施例中,如图5所示,本申请提出一种在系统中部署应用程序的整体流程图,其中包括:
步骤1、获取业务人员部署的用于处理目标业务的子应用实例,并为每个子应用实例关联对应的时效性周期以及路由信息。
步骤2、基于时效性周期以及路由信息,为每个子应用实例创建对应的子应用程序。
步骤3、将子应用程序对应的路由信息加载到系统中的路由管理器中。
步骤4、将子应用程序对应的子应用实例以及时效性周期加载到系统中的应用管理器中。
步骤5、检测到启动主应用程序时,确定系统下的主应用程序中的至少一个接口地址。
步骤6、主应用程序提取路由管理器中预加载的,各个子应用示例对应的路由信息,并将接口地址与路由信息一一进行关联性匹配。
步骤7、若确定存在,将与目标接口地址相匹配的路由信息作为目标路由信息。
步骤8、获取应用管理器中预加载的,该目标路由信息对应的目标子应用示例对应的时效性周期,并确定其是否过期。
步骤9、确定时效性周期指向未过期状态,获取子应用实例对应的部署框架.
步骤10、基于部署框架,由主应用程序在系统中为子应用实例注册基础配置信息。
步骤11、对子应用实例进行初始化加载,并在初始化加载结束后,将基础配置信息关联到已初始化加载的子应用实例中。
步骤12、在主应用程序中创建globalState对象,globalState对象中包括监听变量参数。
步骤13、通过修改监听变量参数,实现主应用程序中各个子应用示例间的信息交互。
通过应用本申请的技术方案,可以在部署应用的过程中,将每个待部署的应用程序在独立开发后,将其分别部署到对应的主应用程序中。从而实现一种在历史应用查询的增量开发的过程中,能够将主应用程序进行拆分化部署的方案。从而一方面实现了方便迭代更新每个子应用程序的目的。另一方面也可以实现在统一的主应用平台上各团队不限制接入应用的技术栈,实现框架的整合,解决了大型项目的迭代问题,同时也实现了各模块代码的松耦。进而也避免了相关技术中存在的,在系统中部署应用程度的复杂程度逐渐变大的问题。
可选的,在本申请的另外一种实施方式中,如图6所示,本申请还提供一种在系统中部署应用程序的装置。其中包括:
获取模块201,被配置为获取至少一个子应用程序,所述子应用程序包含对应的子应用实例以及路由信息;
确定模块202,被配置为确定系统下的主应用程序中的至少一个接口地址,并检测是否存在有与所述子应用程序中的路由信息相匹配的目标接口地址;
加载模块203,被配置为若确定存在,将与所述目标接口地址相匹配的路由信息作为目标路由信息,并将所述目标路由信息对应的子应用实例加载到所述主应用程序中。
通过应用本申请的技术方案,可以在部署应用的过程中,将每个待部署的应用程序在独立开发后,将其分别部署到对应的主应用程序中。从而实现一种在历史应用查询的增量开发的过程中,能够将主应用程序进行拆分化部署的方案。从而一方面实现了方便迭代更新每个子应用程序的目的。另一方面也可以实现在统一的主应用平台上各团队不限制接入应用的技术栈,实现框架的整合,解决了大型项目的迭代问题,同时也实现了各模块代码的松耦。进而也避免了相关技术中存在的,在系统中部署应用程度的复杂程度逐渐变大的问题。
在本申请的另外一种实施方式中,获取模块201,被配置执行的步骤包括:
获取预先部署的用于处理目标业务的子应用实例;
为每个所述子应用实例关联对应的时效性周期以及路由信息;
基于所述时效性周期以及路由信息,为每个所述子应用实例创建对应的子应用程序。
在本申请的另外一种实施方式中,获取模块201,被配置执行的步骤包括:
将所述子应用程序对应的路由信息加载到所述系统中的路由管理器中;以及,将所述子应用程序对应的子应用实例以及时效性周期加载到所述系统中的应用管理器中;
基于所述路由管理器以及所述应用管理器,将所述目标路由信息对应的子应用实例加载到所述主应用程序中。
在本申请的另外一种实施方式中,确定模块202,被配置执行的步骤包括:
检测到启动所述主应用程序时,确定系统下的主应用程序中的至少一个接口地址;
提取所述路由管理器中预加载的,各个子应用示例对应的路由信息;
将所述接口地址与所述路由信息一一进行关联性匹配,确定与所述接口地址相匹配的目标路由信息;
将所述应用管理器中预加载的,与所述目标路由信息相关联的目标子应用示例加载到所述主应用程序中。
在本申请的另外一种实施方式中,获取模块201,被配置执行的步骤包括:
获取所述应用管理器中预加载的,所述目标子应用示例对应的时效性周期;
若确定所述时效性周期指向未过期状态,将所述目标子应用示例加载到所述主应用程序中。
在本申请的另外一种实施方式中,确定模块202,被配置执行的步骤包括:
获取所述子应用实例对应的部署框架;
基于所述部署框架,由所述主应用程序在所述系统中为所述子应用实例注册基础配置信息;
对所述子应用实例进行初始化加载,并在初始化加载结束后,将所述基础配置信息关联到已初始化加载的子应用实例中。
在本申请的另外一种实施方式中,加载模块203,被配置执行的步骤包括:
在所述主应用程序中创建globalState对象,所述globalState对象中包括监听变量参数;
通过修改所述监听变量参数,实现所述主应用程序中各个子应用示例间的信息交互。
本申请实施方式还提供一种电子设备,以执行上述在系统中部署应用程序的方法。请参考图7,其示出了本申请的一些实施方式所提供的一种电子设备的示意图。如图7所示,电子设备3包括:处理器300,存储器301,总线302和通信接口303,所述处理器300、通信接口303和存储器301通过总线302连接;所述存储器301中存储有可在所述处理器300上运行的计算机程序,所述处理器300运行所述计算机程序时执行本申请前述任一实施方式所提供的在系统中部署应用程序的方法。
其中,存储器301可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口303(可以是有线或者无线)实现该装置网元与至少一个其他网元之间的通信连接,可以使用互联网、广域网、本地网、城域网等。
总线302可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。其中,存储器301用于存储程序,所述处理器300在接收到执行指令后,执行所述程序,前述本申请实施例任一实施方式揭示的所述数据识别的方法可以应用于处理器300中,或者由处理器300实现。
处理器300可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器300中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器300可以是通用处理器,包括处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器301,处理器300读取存储器301中的信息,结合其硬件完成上述方法的步骤。
本申请实施例提供的电子设备与本申请实施例提供的数据识别的方法出于相同的发明构思,具有与其采用、运行或实现的方法相同的有益效果。
本申请实施方式还提供一种与前述实施方式所提供的数据识别的方法对应的计算机可读存储介质,请参考图8,其示出的计算机可读存储介质为光盘40,其上存储有计算机程序(即程序产品),所述计算机程序在被处理器运行时,会执行前述任意实施方式所提供的在系统中部署应用程序的方法。
需要说明的是,所述计算机可读存储介质的例子还可以包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
本申请的上述实施例提供的计算机可读存储介质与本申请实施例提供的数据识别的方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。
需要说明的是:
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本申请的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本申请并帮助理解各个发明方面中的一个或多个,在上面对本申请的示例性实施例的描述中,本申请的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下示意图:即所要求保护的本申请要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本申请的单独实施例。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本申请的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
以上所述,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种在系统中部署应用程序的方法,其特征在于,包括:
获取至少一个子应用程序,所述子应用程序包含对应的子应用实例以及路由信息;
确定系统下的主应用程序中的至少一个接口地址,并检测是否存在有与所述子应用程序中的路由信息相匹配的目标接口地址;
若确定存在,将与所述目标接口地址相匹配的路由信息作为目标路由信息,并将所述目标路由信息对应的子应用实例加载到所述主应用程序中。
2.如权利要求1所述的方法,其特征在于,所述获取至少一个子应用程序,包括:
获取预先部署的用于处理目标业务的子应用实例;
为每个所述子应用实例关联对应的时效性周期以及路由信息;
基于所述时效性周期以及路由信息,为每个所述子应用实例创建对应的子应用程序。
3.如权利要求2所述的方法,其特征在于,在所述基于所述时效性周期以及路由信息,为每个所述子应用实例创建对应的子应用程序之后,还包括:
将所述子应用程序对应的路由信息加载到所述系统中的路由管理器中;以及,将所述子应用程序对应的子应用实例以及时效性周期加载到所述系统中的应用管理器中;
基于所述路由管理器以及所述应用管理器,将所述目标路由信息对应的子应用实例加载到所述主应用程序中。
4.如权利要求3所述的方法,其特征在于,所述基于所述路由管理器以及所述应用管理器,将所述目标路由信息对应的子应用实例加载到所述主应用程序,包括:
检测到启动所述主应用程序时,确定系统下的主应用程序中的至少一个接口地址;
提取所述路由管理器中预加载的,各个子应用示例对应的路由信息;
将所述接口地址与所述路由信息一一进行关联性匹配,确定与所述接口地址相匹配的目标路由信息;
将所述应用管理器中预加载的,与所述目标路由信息相关联的目标子应用示例加载到所述主应用程序中。
5.如权利要求4所述的方法,其特征在于,所述将所述应用管理器中预加载的,与所述目标路由信息相关联的目标子应用示例加载到所述主应用程序中,包括:
获取所述应用管理器中预加载的,所述目标子应用示例对应的时效性周期;
若确定所述时效性周期指向未过期状态,将所述目标子应用示例加载到所述主应用程序中。
6.如权利要求1所述的方法,其特征在于,在所述将与所述目标接口地址相匹配的路由信息作为目标路由信息之后,还包括:
获取所述子应用实例对应的部署框架;
基于所述部署框架,由所述主应用程序在所述系统中为所述子应用实例注册基础配置信息;
对所述子应用实例进行初始化加载,并在初始化加载结束后,将所述基础配置信息关联到已初始化加载的子应用实例中。
7.如权利要求1所述的方法,其特征在于,在所述将所述目标路由信息对应的子应用实例加载到所述主应用程序中之后,还包括:
在所述主应用程序中创建globalState对象,所述globalState对象中包括监听变量参数;
通过修改所述监听变量参数,实现所述主应用程序中各个子应用示例间的信息交互。
8.一种在系统中部署应用程序的装置,其特征在于,包括:
获取模块,被配置为获取至少一个子应用程序,所述子应用程序包含对应的子应用实例以及路由信息;
确定模块,被配置为确定系统下的主应用程序中的至少一个接口地址,并检测是否存在有与所述子应用程序中的路由信息相匹配的目标接口地址;
加载模块,被配置为若确定存在,将与所述目标接口地址相匹配的路由信息作为目标路由信息,并将所述目标路由信息对应的子应用实例加载到所述主应用程序中。
9.一种电子设备,其特征在于,包括:
存储器,用于存储可执行指令;以及,
处理器,用于与所述存储器执行所述可执行指令从而完成权利要求1-7中任一所述在系统中部署应用程序的方法的操作。
10.一种计算机可读存储介质,用于存储计算机可读取的指令,其特征在于,所述指令被执行时执行权利要求1-7中任一所述在系统中部署应用程序的方法的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211140836.2A CN115390857A (zh) | 2022-09-20 | 2022-09-20 | 在系统中部署应用程序的方法、装置、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211140836.2A CN115390857A (zh) | 2022-09-20 | 2022-09-20 | 在系统中部署应用程序的方法、装置、电子设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115390857A true CN115390857A (zh) | 2022-11-25 |
Family
ID=84125601
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211140836.2A Pending CN115390857A (zh) | 2022-09-20 | 2022-09-20 | 在系统中部署应用程序的方法、装置、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115390857A (zh) |
-
2022
- 2022-09-20 CN CN202211140836.2A patent/CN115390857A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11188353B2 (en) | Runtime extension system for bundled web application | |
CN104866383B (zh) | 一种接口调用方法、装置及终端 | |
KR101793306B1 (ko) | 가상 애플리케이션 확장 포인트 | |
JP6182160B2 (ja) | 実行中のプロセスへのコードの動的挿入 | |
US9535754B1 (en) | Dynamic provisioning of computing resources | |
CN111190586A (zh) | 软件开发框架的搭建及使用方法、计算设备和存储介质 | |
CN110442379A (zh) | 保护有条件的推测指令执行 | |
US11023558B1 (en) | Executing functions on-demand on a server utilizing web browsers | |
CN111782339A (zh) | 一种容器创建方法、装置、电子设备及存储介质 | |
US11789728B2 (en) | Micro-frontend as a service | |
US11537367B1 (en) | Source code conversion from application program interface to policy document | |
US9218139B2 (en) | Minimally disruptive virtual machine snapshots | |
CN112068850A (zh) | 服务产品实例的创建方法、装置及电子设备 | |
CN113010265A (zh) | Pod的调度方法、调度器、存储插件及系统 | |
US11960918B2 (en) | Creating product orchestration engines | |
CN110442536A (zh) | 基于对象的存储器访问中的静态标识 | |
Harzenetter et al. | Freezing and defrosting cloud applications: automated saving and restoring of running applications | |
CN110837446A (zh) | 应用于嵌入式系统的设备管理方法及装置、介质以及嵌入式设备 | |
CN112860506B (zh) | 监控数据的处理方法、装置、系统和存储介质 | |
US20100088651A1 (en) | Merged tree-view ui objects | |
US20220382576A1 (en) | Performing an application snapshot using process virtual machine resources | |
CN115390857A (zh) | 在系统中部署应用程序的方法、装置、电子设备及介质 | |
US11847611B2 (en) | Orchestrating and automating product deployment flow and lifecycle management | |
US10579373B2 (en) | Seamless extension porting | |
CN109150993B (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 |