CN112149169B - 一种应用访问方法、装置及计算机可读存储介质 - Google Patents
一种应用访问方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN112149169B CN112149169B CN202011083275.8A CN202011083275A CN112149169B CN 112149169 B CN112149169 B CN 112149169B CN 202011083275 A CN202011083275 A CN 202011083275A CN 112149169 B CN112149169 B CN 112149169B
- Authority
- CN
- China
- Prior art keywords
- application
- sub
- accessed
- code
- host
- 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
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000012545 processing Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 11
- 230000006978 adaptation Effects 0.000 claims description 8
- 238000004891 communication Methods 0.000 claims description 3
- 230000001960 triggered effect Effects 0.000 claims description 3
- 238000007781 pre-processing Methods 0.000 claims description 2
- 238000010276 construction Methods 0.000 description 7
- 238000011161 development Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000012098 association analyses Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000003292 glue Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- 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
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- 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
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供了一种应用访问方法、装置及计算机可读存储介质,该应用访问方法包括:在接收到子应用访问指令时,若待访问子应用为前端应用客户端的首个运行子应用,则将待访问子应用标记为宿主应用;基于待访问子应用对应的配置文件中所携带的加载器,加载目标宿主环境;在目标宿主环境下运行待访问子应用的第一代码。通过本申请方案的实施,每个子应用都具备提供宿主环境的能力,然后在该宿主环境下对子应用不依赖原始宿主环境的代码进行运行,从而可以降低前端应用客户端各子应用对宿主应用的依赖性,实现子应用的独立访问。
Description
技术领域
本申请涉及电子技术领域,尤其涉及一种应用访问方法、装置及计算机可读存储介质。
背景技术
微前端是一种类似于微服务的架构,它将微服务的理念应用于浏览器端,即将Web应用由单一的单体应用转变为多个小型前端应用聚合为一的应用,各个小型前端应用还可以独立运行、独立开发、独立部署。
在实际应用中,当前端应用客户端运行某个小型前端应用时,该小型前端应用作为子应用需要加载宿主应用对应的运行环境,然后才能实现小型前端应用的运行。由此可见,相关技术中前端应用客户端中各子应用的运行严重依赖于宿主应用,子应用无法独立被访问。
发明内容
本申请实施例提供了一种应用访问方法、装置及计算机可读存储介质,至少能够解决相关技术中前端应用客户端中各子应用的运行严重依赖于宿主应用,子应用无法独立被访问的问题。
本申请实施例第一方面提供了一种应用访问方法,应用于包括多个子应用的前端应用客户端,包括:
在接收到子应用访问指令时,若待访问子应用为所述前端应用客户端的首个运行子应用,则将所述待访问子应用标记为宿主应用;
基于所述待访问子应用对应的配置文件中所携带的加载器,加载目标宿主环境;
在所述目标宿主环境下运行所述待访问子应用的第一代码;其中,所述配置文件中包括所述第一代码和第二代码,所述第一代码为依赖所述目标宿主环境运行的代码,所述第二代码为依赖原始宿主应用对应宿主环境运行的代码。
本申请实施例第二方面提供了一种应用访问装置,应用于包括多个子应用的前端应用客户端,包括:
标记模块,用于在接收到子应用访问指令时,若待访问子应用为所述前端应用客户端的首个运行子应用,则将所述待访问子应用标记为宿主应用;
加载模块,用于基于所述待访问子应用对应的配置文件中所携带的加载器,加载目标宿主环境;
运行模块,用于在所述目标宿主环境下运行所述待访问子应用的第一代码;其中,所述配置文件中包括所述第一代码和第二代码,所述第一代码为依赖所述目标宿主环境运行的代码,所述第二代码为依赖原始宿主应用对应宿主环境运行的代码。
本申请实施例第三方面提供了一种电子装置,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时,实现上述本申请实施例第一方面提供的应用访问方法中的各步骤。
本申请实施例第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,实现上述本申请实施例第一方面提供的应用访问方法中的各步骤。
由上可见,根据本申请方案所提供的应用访问方法、装置及计算机可读存储介质,在接收到子应用访问指令时,若待访问子应用为前端应用客户端的首个运行子应用,则将待访问子应用标记为宿主应用;基于待访问子应用对应的配置文件中所携带的加载器,加载目标宿主环境;在目标宿主环境下运行待访问子应用的第一代码。通过本申请方案的实施,每个子应用都具备提供宿主环境的能力,然后在该宿主环境下对子应用不依赖原始宿主环境的代码进行运行,从而可以降低前端应用客户端各子应用对宿主应用的依赖性,实现子应用的独立访问。
附图说明
图1为本申请第一实施例提供的应用访问方法的基本流程示意图;
图2为本申请第一实施例提供的应用代码构建方法的流程示意图;
图3为本申请第二实施例提供的应用访问方法的细化流程示意图;
图4为本申请第三实施例提供的应用访问装置的程序模块示意图;
图5为本申请第四实施例提供的电子装置的结构示意图。
具体实施方式
为使得本申请的发明目的、特征、优点能够更加的明显和易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而非全部实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了解决相关技术中前端应用客户端中各子应用的运行严重依赖于宿主应用,子应用无法独立被访问的缺陷,本申请第一实施例提供了一种应用访问方法,应用于包括多个子应用的前端应用客户端,微前端是一种类似于微服务的架构,它将微服务的理念应用于浏览器端,即将Web应用由单一的单体应用转变为多个小型前端应用聚合为一的应用。各个前端应用还可以独立运行、独立开发、独立部署。
在实际应用中,微前端架构解决方案大致可分为如下几种:
路由分发:通过路由将不同的业务分发到不同的、独立前端应用上。其通常可以通过HTTP服务器的反向代理来实现,又或者是应用框架自带的路由来解决。
微应用:在开发时应用以单一、微小应用的形式存在,在运行时,通过构建系统合并这些应用,并组合成一个新的应用。
前端微服务化:每个前端应用都是完全独立(技术栈、开发、部署、构建独立)、自主运行的,最后通过胶水层或者加载器组合出完整的应用。
iframe:通过创建一个全新的独立的宿主环境来隔离各个应用。
微件化/Web Components:可以直接嵌入应用上运行,需预先编译好,在加载时不需要再做任何修改或编译。
如图1为本实施例提供的应用访问方法的基本流程图,该应用访问方法包括以下的步骤:
步骤101、在接收到子应用访问指令时,若待访问子应用为前端应用客户端的首个运行子应用,则将待访问子应用标记为宿主应用。
具体的,在实际应用中,访问指令可以通过用户输入的点击操作所触发,客户端在检测到该点击操作时,确定用户针对特定子应用输入了访问指令。在本实施例中,用户从不同入口进入系统,判断所访问的子应用是否为前端应用客户端第一个触发访问的子应用(也即首个运行子应用),若是,则将第一个触发访问的子应用标记为宿主应用。
步骤102、基于待访问子应用对应的配置文件中所携带的加载器,加载目标宿主环境。
具体的,在本实施例中,宿主环境是指在计算机环境下,软件赖以生存的运行环境。本实施例摒弃原始宿主应用的职责,而改用子应用本身对应的配置文件中所携带的加载器来提供宿主环境能力。
由此,本实施例消除了必须存在一个宿主应用的情况,每个子应用都随时可以提供宿主环境的能力。在开发,构建,部署等阶段,应用与应用之间都是平行关系,只有在被使用的时候,通过用户选择,才产生了一个管理调度者,下次再次被使用的时候,又将进行下一次选择,更好的适应了业务多变的需求。
步骤103、在目标宿主环境下运行待访问子应用的第一代码。
具体的,本实施例的配置文件中包括第一代码和第二代码,第一代码为依赖目标宿主环境运行的代码,第二代码为依赖原始宿主应用对应宿主环境运行的代码。也即本实施例的各子应用均对应配置有两套基于源码构建的产物,分别为不依赖原始宿主应用所提供的宿主环境运行的第一代码,以及依赖原始宿主应用所提供的宿主环境运行的第二代码。
在本实施例的一些实施方式中,本实施例的应用访问方法还包括:若待访问子应用非首个运行子应用,则将具有宿主应用标记的子应用确定为原始宿主应用;在原始宿主应用对应的宿主环境下,运行待访问子应用的第二代码。
具体的,本实施例将前端应用客户端首个运行的子应用标记为宿主应用,而在后续继续访问其它子应用时,则将首个运行的子应用作为后续继续访问的子应用的原始宿主应用,并将后续继续访问的子应用的第二代码在宿主应用所提供的宿主环境下进行运行。
进一步地,在本实施例的一些实施方式中,在原始宿主应用对应的宿主环境下,运行待访问子应用的第二代码之前,还包括:对原始宿主应用对应的宿主环境进行有效性分析。
其中,在原始宿主应用对应的宿主环境有效时,执行在原始宿主应用对应的宿主环境下,运行待访问子应用的第二代码的步骤;在原始宿主应用对应的宿主环境无效时,执行基于待访问子应用对应的配置文件中所携带的加载器,加载目标宿主环境的步骤。
具体的,本实施例在当前所需访问的子应用非首个运行的子应用时,在需使用原始宿主应用所提供的宿主环境之前,首先对该宿主环境进行有效性分析,以确定该宿主环境是否满足当前所需访问的子应用的运行需求,若宿主环境有效,则确定使用原始宿主应用提供的宿主环境运行当前所需访问的子应用的第二代码,反之,则基于当前所需访问的子应用自身的加载器加载宿主环境,并使用自身加载的宿主环境运行对应的第一代码。
进一步地,在本实施例的一些实施方式中,将具有宿主应用标记的子应用确定为原始宿主应用,包括:分别获取待访问子应用与多个具有宿主应用标记的子应用之间的业务关联等级;将业务关联等级最高的子应用确定为原始宿主应用。
具体的,在本实施例中,若已经处于运行状态的子应用中有多个子应用具有宿主应用标记,例如可以是首个运行的子应用以及默认的宿主应用,那么本实施例可以将当前所需运行的子应用与多个具有宿主应用标记的子应用分别进行业务关联分析,以确定当前所需运行的子应用与各具有宿主应用标记的子应用的业务关联等级,其中,业务关联等级越高说明对应具有宿主应用标记的子应用所提供的宿主环境,相对于当前所需运行的子应用的适配性越高,由此,本实施例将业务关联等级最高的子应用确定为原始宿主应用,以通过该宿主应用所提供的宿主环境对当前所需运行的子应用的第二代码进行运行。
如图2所示为本实施例提供的一种应用代码构建方法的流程示意图,在本实施例一些实施方式中,在将待访问子应用标记为宿主应用之前,还具体包括如下步骤:
步骤201、对各子应用的源码分别进行标准化处理,得到标准化导出产物;
步骤202、对各标准化导出产物分别进行附加能力抽象处理,得到预处理产物;
步骤203、基于各预处理产物分别构建对应的第一代码和第二代码。
具体的,在本实施例中,首先通过工程接口设计,使各个子应用遵循统一的导出协议;随后标准化附加能力例如生命周期能力,以供在适当的时机调用;最后改造构建系统,并将默认设置的宿主应用也视为一个子应用,然后通过构建系统,使其能构建出可分别支持依赖宿主环境运行的代码与不依赖宿主环境独立运行的代码。应当理解的是,本实施例通过在构建编译阶段结合升级之后的编译器,支持同时输出多套能力代码,整体过程全自动化,无需人为干扰,对业务开发不产生负面影响。
进一步地,在本实施例的一些实施方式中,对各标准化导出产物分别进行附加能力抽象处理,得到预处理产物,包括:将各标准化导出产物导入至加载器;在加载器外层抽象出附加能力,得到预处理产物。
具体的,本实施例添加一个加载器,使其能加载并导入步骤201的输出;在加载器外层抽象出附加能力,附加能力包括:注册、挂载、卸载的生命周期能力等。
更进一步地,在本实施例的一些实施方式中,对各子应用的源码分别进行标准化处理,包括:通过预设的声明文件以及加载器的适配层,对各子应用的源码分别进行标准化处理。
具体的,本实施例通过声明文件以及加载期内的适配层,标准化子系统导出产物,使其具有统一的输出格式。应当理解的是,本实施例的声明文件遵循统一的导出协议。在本实施例中,仅需通过一个简单的声明文件以及在加载器内加入适配层,业务系统并不需要复杂的改造,且对原有的系统没有侵入,整体标准化输出改造成本非常小。
还应当说明的是,本实施例的应用访问方法的应用场景并不局限于中后台前端应用,现有基于SPA实现的所有Web应用随着时间的推移,各个项目变得越来越臃肿,web应用变得越来越难以维护。通过本发明所提供的适配层兼容,构建系统编译,最终可以将复杂的应用关系变得简单,最终可以被独立运行、独立开发、独立部署,独立访问,自有组合。
基于上述本申请实施例的技术方案,在接收到子应用访问指令时,若待访问子应用为前端应用客户端的首个运行子应用,则将待访问子应用标记为宿主应用;基于待访问子应用对应的配置文件中所携带的加载器,加载目标宿主环境;在目标宿主环境下运行待访问子应用的第一代码。通过本申请方案的实施,每个子应用都具备提供宿主环境的能力,然后在该宿主环境下对子应用不依赖原始宿主环境的代码进行运行,从而可以降低前端应用客户端各子应用对宿主应用的依赖性,实现子应用的独立访问。
图3中的方法为本申请第二实施例提供的一种细化的应用访问方法,该应用访问方法包括:
步骤301、通过预设的声明文件以及加载器的适配层,对前端应用客户端各子应用的源码分别进行标准化处理,得到标准化导出产物。
具体的,本实施例通过声明文件以及加载期内的适配层,标准化子系统导出产物,使其具有统一的输出格式。应当理解的是,本实施例的声明文件遵循统一的导出协议。
步骤302、将各标准化导出产物导入至加载器,在加载器外层抽象出附加能力,得到预处理产物。
具体的,在本实施例中,附加能力包括:注册、挂载、卸载的生命周期能力,以供在适当的时机调用。
步骤303、基于各预处理产物分别构建各子应用对应的第一代码和第二代码。
具体的,在本实施例中,各子应用均对应配置有两套基于源码构建的产物,其中,第一代码为依赖子应用自身所提供的宿主环境运行的代码,第二代码为依赖宿主应用所提供的宿主环境运行的代码。
步骤304、在接收到子应用访问指令时,判断待访问子应用是否为前端应用客户端的首个运行子应用。若是,则执行步骤305;若否,则执行步骤307。
步骤305、基于待访问子应用对应的配置文件中所携带的加载器,加载目标宿主环境。
具体的,本实施例在待访问子应用为前端应用客户端首个被触发访问的子应用时,摒弃原始宿主应用的职责,而改用子应用本身对应的配置文件中所携带的加载器来提供宿主环境能力。
步骤306、在目标宿主环境下运行待访问子应用的第一代码。
具体的,本实施例在子应用自身所提供的宿主环境下,对子应用不依赖原始宿主环境的代码进行运行,从而可以降低前端应用客户端各子应用对宿主应用的依赖性,实现子应用的独立访问。
步骤307、在首个运行子应用所提供的目标宿主环境下,运行待访问子应用的第二代码。
具体的,本实施例将前端应用客户端首个运行的子应用标记为宿主应用,而在后续继续访问其它子应用时,则将首个运行的子应用作为后续继续访问的子应用的原始宿主应用,并将后续继续访问的子应用的第二代码在宿主应用所提供的宿主环境下进行运行。
应当理解的是,本实施例中各步骤的序号的大小并不意味着步骤执行顺序的先后,各步骤的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成唯一限定。
本申请实施例公开了一种应用访问方法,在接收到子应用访问指令时,若待访问子应用为前端应用客户端的首个运行子应用,则将待访问子应用标记为宿主应用;基于待访问子应用对应的配置文件中所携带的加载器,加载目标宿主环境;在目标宿主环境下运行待访问子应用的第一代码。通过本申请方案的实施,每个子应用都具备提供宿主环境的能力,然后在该宿主环境下对子应用不依赖原始宿主环境的代码进行运行,从而可以降低前端应用客户端各子应用对宿主应用的依赖性,实现子应用的独立访问。
图4为本申请第三实施例提供的一种应用访问装置。该应用访问装置可用于实现前述实施例中的应用访问方法。如图4所示,该应用访问装置主要包括:
标记模块401,用于在接收到子应用访问指令时,若待访问子应用为前端应用客户端的首个运行子应用,则将待访问子应用标记为宿主应用;
加载模块402,用于基于待访问子应用对应的配置文件中所携带的加载器,加载目标宿主环境;
运行模块403,用于在目标宿主环境下运行待访问子应用的第一代码;其中,配置文件中包括第一代码和第二代码,第一代码为依赖目标宿主环境运行的代码,第二代码为依赖原始宿主应用对应宿主环境运行的代码。
在本实施例的一些实施方式中,应用访问装置还包括:确定模块,用于若待访问子应用非首个运行子应用,则将具有宿主应用标记的子应用确定为原始宿主应用。相对应的,运行模块403还用于:在原始宿主应用对应的宿主环境下,运行待访问子应用的第二代码。
进一步地,在本实施例的一些实施方式中,应用访问装置还包括:分析模块,用于在原始宿主应用对应的宿主环境下,运行待访问子应用的第二代码之前,对原始宿主应用对应的宿主环境进行有效性分析。相对应的,运行模块403具体用于:在原始宿主应用对应的宿主环境有效时,在原始宿主应用对应的宿主环境下,运行待访问子应用的第二代码;以及,加载模块402具体用于:在原始宿主应用对应的宿主环境无效时,基于待访问子应用对应的配置文件中所携带的加载器,加载目标宿主环境。
进一步地,在本实施例的一些实施方式中,确定模块具体用于:分别获取待访问子应用与多个具有宿主应用标记的子应用之间的业务关联等级;将业务关联等级最高的子应用确定为原始宿主应用。
在本实施例的一些实施方式中,应用访问装置还包括:第一处理模块、第二处理模块以及构建模块,其中,第一处理模块用于:对各子应用的源码分别进行标准化处理,得到标准化导出产物;第二处理模块用于:对各标准化导出产物分别进行附加能力抽象处理,得到预处理产物;构建模块用于:基于各预处理产物分别构建对应的第一代码和第二代码。
进一步地,在本实施例的一些实施方式中,第二处理模块具体用于:将各标准化导出产物导入至加载器;在加载器外层抽象出附加能力,得到预处理产物;其中,附加能力包括:注册、挂载、卸载的生命周期能力。
更进一步地,在本实施例的另一些实施方式中,第一处理模块具体用于:通过预设的声明文件以及加载器的适配层,对各子应用的源码分别进行标准化处理;其中,声明文件遵循统一的导出协议。
应当说明的是,第一、二实施例中的应用访问方法均可基于本实施例提供的应用访问装置实现,所属领域的普通技术人员可以清楚的了解到,为描述的方便和简洁,本实施例中所描述的应用访问装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
根据本实施例所提供的应用访问装置,在接收到子应用访问指令时,若待访问子应用为前端应用客户端的首个运行子应用,则将待访问子应用标记为宿主应用;基于待访问子应用对应的配置文件中所携带的加载器,加载目标宿主环境;在目标宿主环境下运行待访问子应用的第一代码。通过本申请方案的实施,每个子应用都具备提供宿主环境的能力,然后在该宿主环境下对子应用不依赖原始宿主环境的代码进行运行,从而可以降低前端应用客户端各子应用对宿主应用的依赖性,实现子应用的独立访问。
请参阅图5,图5为本申请第四实施例提供的一种电子装置。该电子装置可用于实现前述实施例中的应用访问方法。如图5所示,该电子装置主要包括:
存储器501、处理器502、总线503及存储在存储器501上并可在处理器502上运行的计算机程序,存储器501和处理器502通过总线503连接。处理器502执行该计算机程序时,实现前述实施例中的应用访问方法。其中,处理器的数量可以是一个或多个。
存储器501可以是高速随机存取记忆体(RAM,Random Access Memory)存储器,也可为非不稳定的存储器(non-volatile memory),例如磁盘存储器。存储器501用于存储可执行程序代码,处理器502与存储器501耦合。
进一步的,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是设置于上述各实施例中的电子装置中,该计算机可读存储介质可以是前述图5所示实施例中的存储器。
该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现前述实施例中的应用访问方法。进一步的,该计算机可存储介质还可以是U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个可读存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的可读存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上为对本申请所提供的应用访问方法、装置及计算机可读存储介质的描述,对于本领域的技术人员,依据本申请实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种应用访问方法,应用于包括多个子应用的前端应用客户端,其特征在于,包括:
在接收到子应用访问指令时,若待访问子应用为所述前端应用客户端的首个运行子应用,则将所述待访问子应用标记为宿主应用;
基于所述待访问子应用对应的配置文件中所携带的加载器,加载目标宿主环境;
在所述目标宿主环境下运行所述待访问子应用的第一代码;其中,所述配置文件中包括所述第一代码和第二代码,所述第一代码为依赖所述目标宿主环境运行的代码,所述第二代码为依赖原始宿主应用对应宿主环境运行的代码;
若所述待访问子应用非所述首个运行子应用,则分别获取所述待访问子应用与多个具有宿主应用标记的子应用之间的业务关联等级;将业务关联等级最高的子应用确定为所述原始宿主应用;
在所述原始宿主应用对应的宿主环境下,运行所述待访问子应用的所述第二代码。
2.根据权利要求1所述的方法,其特征在于,所述访问指令是通过用户输入的点击操作所触发的。
3.根据权利要求1所述的应用访问方法,其特征在于,所述在所述原始宿主应用对应的宿主环境下,运行所述待访问子应用的所述第二代码之前,还包括:
对所述原始宿主应用对应的宿主环境进行有效性分析;
在所述原始宿主应用对应的宿主环境有效时,执行所述在所述原始宿主应用对应的宿主环境下,运行所述待访问子应用的所述第二代码的步骤;
在所述原始宿主应用对应的宿主环境无效时,执行所述基于所述待访问子应用对应的配置文件中所携带的加载器,加载目标宿主环境的步骤。
4.根据权利要求1所述的方法,其特征在于,所述业务关联等级越高,则对应具有宿主应用标记的子应用所提供的宿主环境,相对于当前所需运行的子应用的适配性越高。
5.根据权利要求1所述的应用访问方法,其特征在于,所述将所述待访问子应用标记为宿主应用之前,还包括:
对各所述子应用的源码分别进行标准化处理,得到标准化导出产物;
对各所述标准化导出产物分别进行附加能力抽象处理,得到预处理产物;
基于各所述预处理产物分别构建对应的所述第一代码和所述第二代码。
6.根据权利要求5所述的应用访问方法,其特征在于,所述对各所述标准化导出产物分别进行附加能力抽象处理,得到预处理产物,包括:
将各所述标准化导出产物导入至所述加载器;
在所述加载器外层抽象出附加能力,得到预处理产物;其中,所述附加能力包括:注册、挂载、卸载的生命周期能力。
7.根据权利要求6所述的应用访问方法,其特征在于,所述对各所述子应用的源码分别进行标准化处理,包括:
通过预设的声明文件以及所述加载器的适配层,对各所述子应用的源码分别进行标准化处理;其中,所述声明文件遵循统一的导出协议。
8.一种应用访问装置,应用于包括多个子应用的前端应用客户端,其特征在于,包括:
标记模块,用于在接收到子应用访问指令时,若待访问子应用为所述前端应用客户端的首个运行子应用,则将所述待访问子应用标记为宿主应用;
加载模块,用于基于所述待访问子应用对应的配置文件中所携带的加载器,加载目标宿主环境;
运行模块,用于在所述目标宿主环境下运行所述待访问子应用的第一代码;其中,所述配置文件中包括所述第一代码和第二代码,所述第一代码为依赖所述目标宿主环境运行的代码,所述第二代码为依赖原始宿主应用对应宿主环境运行的代码;若所述待访问子应用非所述首个运行子应用,则分别获取所述待访问子应用与多个具有宿主应用标记的子应用之间的业务关联等级;将业务关联等级最高的子应用确定为所述原始宿主应用;在所述原始宿主应用对应的宿主环境下,运行所述待访问子应用的所述第二代码。
9.一种电子装置,其特征在于,包括:存储器、处理器及总线;
所述总线用于实现所述存储器、处理器之间的连接通信;
所述处理器用于执行存储在所述存储器上的计算机程序;
所述处理器执行所述计算机程序时,实现权利要求1至7中任意一项所述方法中的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现权利要求1至7中的任意一项所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011083275.8A CN112149169B (zh) | 2020-10-12 | 2020-10-12 | 一种应用访问方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011083275.8A CN112149169B (zh) | 2020-10-12 | 2020-10-12 | 一种应用访问方法、装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112149169A CN112149169A (zh) | 2020-12-29 |
CN112149169B true CN112149169B (zh) | 2024-07-12 |
Family
ID=73951431
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011083275.8A Active CN112149169B (zh) | 2020-10-12 | 2020-10-12 | 一种应用访问方法、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112149169B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112748962B (zh) * | 2021-01-22 | 2023-10-20 | 北京五八信息技术有限公司 | 应用加载方法、装置、电子设备和计算机可读介质 |
CN113448702A (zh) * | 2021-06-16 | 2021-09-28 | 浪潮软件股份有限公司 | 一种基于前端的微服务设计方法 |
CN113204444B (zh) * | 2021-07-06 | 2022-04-26 | 北京全路通信信号研究设计院集团有限公司 | 一种基于全局的现车管理系统及其方法 |
CN113239909B (zh) * | 2021-07-12 | 2021-10-29 | 北京世纪好未来教育科技有限公司 | 一种题目处理方法、装置、设备及介质 |
CN113872938B (zh) * | 2021-08-29 | 2024-08-02 | 济南浪潮数据技术有限公司 | 一种Web访问安全的防护方法、装置、设备及可读介质 |
CN114238074A (zh) * | 2021-11-18 | 2022-03-25 | 北京达佳互联信息技术有限公司 | 一种子应用的调试方法、装置、设备及存储介质 |
CN114546524B (zh) * | 2022-02-11 | 2024-04-05 | 支付宝(杭州)信息技术有限公司 | 应用权限处理方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108229112A (zh) * | 2016-12-22 | 2018-06-29 | 阿里巴巴集团控股有限公司 | 一种保护应用程序、应用程序的运行方法以及装置 |
CN110389936A (zh) * | 2019-07-25 | 2019-10-29 | 上海连尚网络科技有限公司 | 一种启动小程序的方法、设备和计算机存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6014702A (en) * | 1997-06-04 | 2000-01-11 | International Business Machines Corporation | Host information access via distributed programmed objects |
US9395924B2 (en) * | 2013-01-22 | 2016-07-19 | Seagate Technology Llc | Management of and region selection for writes to non-volatile memory |
CN103729288B (zh) * | 2013-11-01 | 2016-02-24 | 华中科技大学 | 一种嵌入式多核环境下应用程序的调试方法 |
CN104765637A (zh) * | 2014-01-02 | 2015-07-08 | 深圳迈瑞生物医疗电子股份有限公司 | 一种在监护仪上安全运行桌面应用程序的系统 |
CN104536776B (zh) * | 2014-11-28 | 2018-11-23 | 百度在线网络技术(北京)有限公司 | 一种在宿主端插件运行环境中运行插件应用的方法与装置 |
CN109960541B (zh) * | 2019-03-15 | 2022-07-29 | 上海连尚网络科技有限公司 | 启动小程序的方法、设备和计算机存储介质 |
CN111752635A (zh) * | 2020-06-23 | 2020-10-09 | 北京三快在线科技有限公司 | 应用程序的运行方法、装置、计算机设备以及存储介质 |
-
2020
- 2020-10-12 CN CN202011083275.8A patent/CN112149169B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108229112A (zh) * | 2016-12-22 | 2018-06-29 | 阿里巴巴集团控股有限公司 | 一种保护应用程序、应用程序的运行方法以及装置 |
CN110389936A (zh) * | 2019-07-25 | 2019-10-29 | 上海连尚网络科技有限公司 | 一种启动小程序的方法、设备和计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112149169A (zh) | 2020-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112149169B (zh) | 一种应用访问方法、装置及计算机可读存储介质 | |
CN109032706B (zh) | 智能合约执行方法、装置、设备和存储介质 | |
US9286042B2 (en) | Control flow graph application configuration | |
US7917913B2 (en) | Injecting proxy components using blueprints | |
JPH1185519A (ja) | オブジェクトを遠隔的に実行する方法、システム | |
CN113064676B (zh) | 基于js入口的前端运行时远程组件共享机制的方法 | |
US7721278B2 (en) | Modular server architecture for multi-environment HTTP request processing | |
CN114116134A (zh) | 智能合约部署和执行方法、设备及存储介质 | |
CN102298518A (zh) | 从技术未知的管理命令到多个管理协议的转换 | |
Falcarin et al. | Software architecture evolution through dynamic aop | |
CN115878711B (zh) | 一种Redis连接池的实现方法、装置、设备及介质 | |
CN115509531A (zh) | 基于前端技术的微前端实现方法、装置、终端及存储介质 | |
Fernandez de Vega et al. | Customizable execution environments for evolutionary computation using boinc+ virtualization | |
US20210055971A1 (en) | Method and node for managing a request for hardware acceleration by means of an accelerator device | |
CN117093227B (zh) | 一种用于执行智能合约的方法及装置 | |
Chen et al. | An Innovative Self-Configuration Approach for Networked Systems and Applications. | |
Helle et al. | Implementing and Deploying an Execution Environment for Multidisciplinary-Analyses in a Heterogeneous Tool Landscape | |
CN110520842B (zh) | 针对传统应用兼容性的地址空间拆分系统及方法 | |
CN113986239B (zh) | 分布式编译方法、装置、设备及可读存储介质 | |
Scheidl | WebAssembly: Paving the Way Towards a Unified and Distributed Intra-Vehicle Computing-and Data-Acquisition-Platform? | |
US10990357B2 (en) | Application build automation | |
Son et al. | Design and implementation of an IoT-cloud converged virtual machine system | |
Wu et al. | Meta-model evolution with self-adaptation: An empirical development approach for distributed parallel computing framework | |
Dumitrescu et al. | Simplifying Grid Application Programming Using Web-enabled Code Transfer Tools | |
Schulz et al. | Adjustable module isolation for distributed computing infrastructures |
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 |