CN114579206B - 动态加载应用程序的方法、装置、设备及介质 - Google Patents
动态加载应用程序的方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN114579206B CN114579206B CN202210264028.0A CN202210264028A CN114579206B CN 114579206 B CN114579206 B CN 114579206B CN 202210264028 A CN202210264028 A CN 202210264028A CN 114579206 B CN114579206 B CN 114579206B
- Authority
- CN
- China
- Prior art keywords
- intelligent
- application program
- package
- loading
- event
- 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
Classifications
-
- 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
- G06F9/44526—Plug-ins; Add-ons
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种动态加载应用程序的方法、装置、设备及介质,该方法包括:提供至少一个智能包,获取当前待加载的智能包,对智能包进行解析确定所述智能包所需的业务资源;判断当前服务进程是否满足智能包所需的业务资源,若满足智能包所需的业务资源,将解析的智能包分配到指定目录,在指定目录下协调管理应用程序;监听来自外部的Http请求,响应于Http请求加载当前应用程序,实现应用程序的动态加载,本申请通过将应用程序与系统升级包分离,形成携带应用程序的智能包,避免了边缘计算终端每次更新一种应用程序都需更新系统,大大降低了系统的维护成本,提高了用户体验;同时,也降低了开发工作量,提高了开发效率。
Description
技术领域
本申请涉及视频监控技术领域,也涉及边缘计算终端,特别是涉及一种动态加载应用程序的方法、装置、设备及介质。
背景技术
随着安防技术的发展与智慧城市的建设,使用智能算法(应用程序)对视频数据进行分析处理变得不可或缺。例如,在边缘计算终端(设备)嵌入智能算法,将边缘计算终端应用到金融、交通管理、医院、工地、能源、园区等各行各业,使其能够扩展支持多样化的智能应用,并根据应用场景的需求在设备上灵活加载与切换整套智能应用服务。
然而,在相关技术中,前端web用户界面、后端管理服务、视图库与解析模块通信功能都集中在一个边缘计算终端的服务主进程中。如果边缘计算终端需要添加一种新的应用程序,需要将该应用程序相关的内容添加到业务整包,从而导致边缘计算终端每次要支持一种新算法(应用程序),都需要更新系统,随着新算法的增加,使得升级后系统的体积也会随之增大。从用户角度来讲,新增一种算法就需要升级一次系统,操作繁琐;从开发角度来讲,新增算法之后,需要对一整套业务进行开发调试,导致开发的工作量大与效率低。
发明内容
鉴于以上所述现有技术的缺点,本申请的目的在于提供一种动态加载应用程序的方法、装置、设备及介质,用于解决现有技术在动态加载应用程序时,因新增算法需要更新系统的问题。
为实现上述目的及其他相关目的,本申请提供一种动态加载应用程序的方法,包括:
提供至少一个智能包,所述智能包携带应用程序;
获取当前待加载的所述智能包,对所述智能包进行解析确定所述智能包所需的业务资源;
判断当前服务进程是否满足所述智能包所需的业务资源,若满足所述智能包所需的业务资源,将解析的所述智能包分配到指定目录,在所述指定目录下协调管理应用程序;
监听来自外部的Http请求,响应于所述Http请求加载当前所述应用程序,实现所述应用程序的动态加载。
于本发明的一实施例中,所述智能包包括应用程序、所述应用程序所对应的视图库插件、所述应用程序所对应的静态资源、提供接口协议的智能管理动态库、存储加载所述应用程序的业务资源与版本信息的文件。
于本发明的一实施例中,还包括:
获取所述智能包对应的应用程序的任务配置信息;
根据所述任务配置信息加载智能管理动态库生成协议处理逻辑,参照所述协议处理逻辑对协议进行转换,直至所有协议转换为可识别协议为止;
基于转换后的协议运行当前所述应用程序,根据所述应用程序的运行结果确定应用程序的管理任务。
于本发明的一实施例中,还包括:
获取包含智能事件的管理请求;
当接收到所述管理请求时,确定所述管理请求中的智能事件的处理方法以及智能事件消息,所述智能事件消息包括事件名称、事件发生时间与描述事件的图像;
当检测到所述智能事件产生时,利用视图库插件将该智能事件消息进行存储;
根据输入的匹配条件过滤存储的所述智能事件消息,按照所述匹配条件进行响应返回智能消息;
展示返回的所述智能事件消息实现智能事件管理。
于本发明的一实施例中,所述获取当前待加载的所述智能包之前,还包括:
创建用于监听服务进程的Http端口;
利用所述Http端口监听服务进程,当监听到服务进程时,初始化服务进程与所述应用程序所对应的视图库插件、智能管理动态库的链接,并开启智能包安装接口与智能包信息查询接口,完成初始化服务。
于本发明的一实施例中,还包括:
获取所述智能包的卸载请求,将所述卸载请求进行分发通知;
响应于所述卸载请求进行卸载操作,之后,反馈各个卸载状况生成卸载结果;
根据所述卸载结果取消动态库之间的链接,并删除相关文件直至卸载完成。
于本发明的一实施例中,还包括:
若所述Http请求的类型与当前加载的所述应用程序相匹配时,则响应于所述Http请求实现所述应用程序的动态加载;
若所述Http请求的类型与当前加载的所述应用程序不匹配时,则选择与所述Http请求的类型相匹配的所述应用程序进行切换,加载切换后的所述应用程序响应所述Http请求,实现所述应用程序的动态加载。
在本申请的另一目的在于提供了一种动态加载应用程序的装置,包括:
存储模块,用于提供至少一个智能包,所述智能包包括应用程序、所述应用程序所对应的视图库插件、所述应用程序所对应的静态资源、提供接口协议的智能管理动态库、存储加载所述应用程序的业务资源与版本信息的文件;
解析服务模块,用于获取当前待加载的所述智能包,对所述智能包进行解析确定所述智能包所需的业务资源;
智能包管理模块,用于判断当前服务进程是否满足所述智能包所需的业务资源,若满足所述智能包所需的业务资源,将解析的所述智能包分配到指定目录,在所述指定目录下协调管理应用程序;
程序加载模块,用于监听来自外部的Http请求,响应于所述Http请求加载当前所述应用程序,实现所述应用程序的动态加载。
于本发明的一实施例中,所还包括:
智能任务配置模块,用于获取所述智能包对应的应用程序的任务配置信息;根据所述任务配置信息加载智能管理动态库生成协议处理逻辑,参照所述协议处理逻辑对协议进行协议转换,直到所有协议转换为可识别协议为止;基于转换后的协议运行当前所述应用程序,根据所述应用程序的运行结果确定应用程序的管理任务。
于本发明的一实施例中,所还包括:
智能事件管理模块,用于获取包含智能事件的管理请求;当接收到所述管理请求后,确定所述管理请求中的智能事件的处理方法以及智能事件消息,所述智能事件消息包括事件名称、事件发生时间与描述事件的图像;当检测到所述智能事件产生时,利用视图库插件将该智能事件消息进行存储;根据输入的匹配条件过滤存储的所述智能事件消息,按照所述匹配条件进行响应返回智能消息;展示返回的所述智能事件消息实现智能事件管理。
在本申请的另一目的在于提供一种电子设备,包括:
一个或多个处理装置;
存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理装置执行,使得所述一个或多个处理装置执行所述动态加载应用程序的方法。
在本申请的还一目的在于提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序用于使所述计算机执行所述动态加载应用程序的方法。
如上所述,本申请的动态加载应用程序的方法、装置、设备及介质,具有以下有益效果:
本申请通过将应用程序与系统升级包分离,形成携带应用程序的智能包,每次新增或切换应用程序时,只需加载选中的智能包即可实现动态加载,避免了边缘计算终端每次要安装一种新算法(应用程序)都需更新系统,大大降低了系统的维护成本,从用户角度来讲,提高了用户体验;从开发角度来讲,降低了开发工作量,提高了开发效率。
附图说明
图1显示为本申请提供的一种动态加载应用程序的方法流程图;
图2显示为本申请提供的一种动态加载应用程序的装置结构框图;
图3显示为本申请提供的一种动态加载应用程序的整体框架图;
图4显示为本申请提供的一种应用程序导入分配图;
图5显示为本申请提供的一种智能事件管理流程图;
图6显示为本申请提供的一种智能包导入安装时序图;
图7显示为本申请提供的一种智能事件订阅与智能事件产生时序图
图8显示为本申请提供的一种电子设备结构示意图。
具体实施方式
以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。本申请还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本申请的基本构想,遂图式中仅显示与本申请中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
请参阅图1,为本申请提供的一种动态加载应用程序的方法流程图,包括:
步骤S101,提供至少一个智能包,所述智能包携带应用程序;
例如,通过存储一个或多个智能包,每个智能包包括应用程序、所述应用程序所对应的视图库插件、所述应用程序所对应的静态资源、提供接口协议的智能管理动态库、存储加载所述应用程序的业务资源与版本信息的文件。
例如,应用程序指为完成某项或多项特定工作的计算机程序,它运行在用户模式,可以和用户进行交互,具有可视的用户界面,该应用程序通过解析算法包进行表示,例如,应用程序指单一可执行文件或单一程序,Word、Photoshop等。
静态资源,即,web静态资源,为前端的固定页面,包含HTML、CSS、JS、图片等,不需要查数据库也不需要程序处理,直接就能够显示的页面,如果想修改内容则必须修改页面,访问效率相当高。
视图库插件,其中,视图库是视频图像信息数据库主要包括各类数据的存储与管理,该层是平台最核心的数据资源所在,包括了数据管理、原始智能感知数据库、基础资源库与专题库,具有重要作用。
智能管理动态库,管理动态库的动态库管理的底层动态库可为多个相同或不同类型的底层动态库。如这些底层动态库可以都是photoshop的底层动态库,也可以是videoconverter的底层动态库,也可以是photoshop和video converter的底层动态库的组合,等等。
上述各个模块对应的各种业务资源信息以及当前应用程序对应的版本信息以Json文件形式进行存储。
通过上述方式,制作智能包,不仅记载应用程序,还记载应用程序所需的业务资源,便于管理和调用。
步骤S102,获取当前待加载的所述智能包,对所述智能包进行解析确定所述智能包所需的业务资源;
其中,在多个智能包中确定待加载的智能包,通过解析当前获取的智能包,能够获取该智能包的业务资源,详细如上所记载,在此不再赘述。
步骤S103,判断当前服务进程是否满足所述智能包所需的业务资源,若满足所述智能包所需的业务资源,将解析的所述智能包分配到指定目录,在所述指定目录下协调管理应用程序;
具体地,通过判断当前服务进程是否满足智能包运行所需的业务资源,如果满足,则按照上述方式,将智能包对应的业务资源分配到指定目录,在所述指定目录下协调管理应用程序,即,将解析后的智能包进行安装,方便后续使用;如果不满足,则无法安装以及使用该应用程序。
例如,通过智能包的安装与使用,例如,将智能应用所需的各部门文件按照智能包的打包规则,制作成智能包;用户在web界面将智能包上传,上传完成后下发安装请求;由IntelliManager将智能包的所有内容分配到各个模块,并协调起来;用户在web界面看到该智能包的智能应用界面,并进行下发算法任务配置、智能事件实时预览与查询、智能事件联动配置等操作,有利于智能包的切换与加载。
步骤S104,监听来自外部的Http请求,响应于所述Http请求加载当前所述应用程序,实现所述应用程序的动态加载。
其中,Http是超文本传输协议,其定义了客户端与服务器端之间文本传输的规范,所述Http请求是指从客户端到服务器端的请求消息,由请求行(request line)、请求头部(headers)、空行(blank line)和请求数据(request body)组成。
具体地,通过接收并解析来自外部的Http请求,获取Http请求指令中所包含的操作指令,根据操作指令加载当前所述应用程序,实现应用程序的动态加载或管理。
需要说明的是,根据所述Http请求的类型实现不同应用程序的切换和动态加载,详述如下:
若所述Http请求的类型与当前加载的所述应用程序相匹配时,则响应于所述Http请求实现所述应用程序的动态加载;
若所述Http请求的类型与当前加载的所述应用程序不匹配时,则选择与所述Http请求的类型相匹配的所述应用程序进行切换,加载切换后的所述应用程序响应所述Http请求,实现所述应用程序的动态加载。
在本实施例中,通过让边缘端能够在系统运行起来之后动态加载与切换智能应用,智能包中不仅包含算法,还包含一整套与算法相关的业务应用,当用户想使用新算法,无需更新系统,只需在web界面上安装智能包即可使用这套算法的应用服务;开发无需关心系统业务,在接到新算法支持的需求后,将新算法以及其应用框架按照协议规定制作成智能包,即可在设备上调试开发,并交付给用户;在后续维护工作中,也只需针对智能包进行维护,大幅提高了开发效率;系统升级包不会因为支持了新算法应用而增大体积,避免在迭代过程中系统升级包愈发臃肿。
例如,当管理动态库的动态库根据接收的请求查询自己的功能注册表,若存在支持的功能对象,则向外部返回该功能对象;若不存在支持的功能对象,则向外部返回空的信息等以指示不支持。
详见图3,为本申请提供的一种动态加载应用程序的整体框架图,详述如下:
在主芯片与从芯片架构中,主芯片与从芯片采用网络通信,主芯片内部的IntelliManager(算法管理模块)管理存储的多个智能包,智能包a、智能包b等;在主芯片内部的系统主服务玻璃智能算法包(即,智能包),通过主芯片内部web进行前端显示交互;而在从芯片内分别对智能包实行视图库服务与解析服务,方便智能包的正在切换与使用。
在本实施例中,不仅加载算法,还将使用算法的一整套服务框架都动态加载到边缘设备。通过将算法管理模块从系统主服务进程剥离,开发一个独立的、专于管理智能算法的服务进程,并规定智能算法包的组成结构,将算法应用所需要的静态资源、动态库、解析模块、视图插件都按照规则放入智能包中,由该独立进程对智能包进行管理。剥离出来的独立进程,称之为IntelliManager(智能包管理服务进程),通过TCP、HTTP等网络协议与视图库服务、解析服务与边缘计算主服务进行通信,用于协调各个模块针对不同算法应用的业务部署、文件加载以及智能数据流的及时交互。通过该技术,可让边缘计算端实现在一套系统框架下支持多种不同的智能算法应用,且可以实时地、动态地对其进行加载或者切换。
在某些实施方式中,还包括:
获取所述智能包对应的应用程序的任务配置信息;
根据所述任务配置信息加载智能管理动态库生成协议处理逻辑,参照所述协议处理逻辑对协议进行协议转换,直到所有协议转换为可识别协议为止;
基于转换后的协议运行当前所述应用程序,根据所述应用程序的运行结果确定应用程序的管理任务。
例如,用户在智能任务配置界面上创建智能算法任务,下发配置信息;系统主服务将请求与配置信息转发给IntelliManager;IntelliManager解析获取到的配置信息,转换协议后下发到解析服务模块;解析服务创建算法任务,开始运行算法,并将创建结果返回给上层,通过上述智能任务管理,能够更方便的使用或管理智能包。
在某些实施方式中,还包括:
获取包含智能事件的管理请求;
当接收到所述管理请求后,确定所述管理请求中的智能事件的处理方法以及智能事件消息,所述智能事件消息包括事件名称、事件发生时间与描述事件的图像;
当检测到所述智能事件产生时,利用视图库插件将该智能事件消息进行存储;
根据输入的匹配条件过滤存储的所述智能事件消息,按照所述匹配条件进行响应返回智能消息;
展示返回的所述智能事件消息实现智能事件管理。
通过智能事件管理,例如,用户在web界面订阅相关智能事件信息,并打开实时预览界面;智能事件产生时,在web界面可看到智能信息,包括事件名称、图片、事件发生时间等。并且用户能在界面上过滤智能信息;产生的智能事件信息会存放在数据库中,用户可在智能应用界面上查询所有历史事件信息。
通过上述方式,能够有效管理智能事件,同时,由于管理智能包的服务已经进程化,并且与系统主服务进程解耦,开发者无需再将冗杂的协议处理添加到系统主服务进程中。协议处理逻辑、算法、web资源、视图库插件等所有模块都集成在智能包中,开发者只需对智能包本身进行维护,提高了开发效率。
在某些实施方式中,在获取当前待加载的所述智能包,对所述智能包进行解析确定所述智能包所需的业务资源之前,还包括:
创建用于监听服务进程的Http端口;
利用所述Http端口监听服务进程,当监听到服务进程时,初始化服务进程与所述应用程序所对应的视图库插件、智能管理动态库的链接,并开启智能包安装接口与智能包信息查询接口,完成初始化服务。
在本实施例中,在主芯片上运行IntelliManager,加载或创建配置文件;服务进程创建HTTP服务,开启并监听服务端口;服务进程与主系统服务、解析平台服务、视图平台服务初始化连接;服务进程对外开启智能包安装接口与智能包信息查询接口,服务初始化完成,通过初始化服务能够确保加载下一个智能包。
在某些实施方式中,还包括:
生成所述智能包的卸载请求,将所述卸载请求进行分发通知;
响应于所述卸载请求进行卸载操作,之后,反馈各个卸载状况生成卸载结果;
根据所述卸载结果取消服务进程与动态库之间的链接,并删除相关文件直至卸载完成。
例如,用户在智能包管理界面选择卸载智能包,通过IntelliManager停止此智能包的相关业务,并回收资源;与此智能包相关的智能应用界面不再在web上展示。通过上述方式,可以干净卸载某个智能包,也能够优化系统、节约资源,有利于新的智能包的动态加载。
在另一些实施例中,通过以下方式记载动态加载应用程序的完整方法流程图,详述如下:
步骤1:智能包制作
步骤1.1:获取解析平台交付的算法包、此算法包对应的视图库插件、此算法包对应的web静态页面资源;
步骤1.2:对各部门的接口协议进行整理封装,对前端web提供一套结构清晰的接口协议,并将协议处理编译成智能管理动态库;
步骤1.3:将各部门模块的所需信息、智能包版本信息记录在一个json文件中;
步骤1.4:将所有文件按照规定的目录结构进行整理并压缩成一个智能包。
步骤2:服务初始化
步骤2.1:在主芯片上运行IntelliManager,加载或创建配置文件;
步骤2.2:服务进程创建HTTP服务,开启并监听服务端口;
步骤2.3:服务进程与主系统服务、解析平台服务、视图平台服务初始化连接;
步骤2.4:服务进程对外开启智能包安装接口与智能包信息查询接口;
步骤2.5:服务初始化完成。
步骤3:智能包导入安装,详见图4,其中,IntelliManager包括智能包管理模块、web资源管理模块、智能事件管理模块、智能任务配置模块;其中,智能包管理模块导入智能包A,利用解析服务与视图库服务加载智能包相关文件,利用web资源管理模块加载智能包内静态资源,利用能事件管理模块与智能任务配置模块加载智能管理动态库,同时,web资源管理模块将智能应用对应的界面加载到web端;详见图6,为智能包导入安装时序图,web端接收用户上传的智能包并接收下发的安装命令,以Http请求的方式传输包含上述命令的指令,通过转发请求,IntelliManage通过解析请求中的智能包,并判断该智能包的合法性,当解压相关业务资源后,注册智能事件通知回调函数,并下发安装通知,直到解析服务、视图服务与系统主服务返回安装结果,加载智能包管理动态库。
步骤3.1:用户下发智能包安装命令,系统主服务将请求转发给IntelliManager;
步骤3.2:IntelliManager会解析智能包中的json文件,获取所有模块文件的信息,并判断合法性;
步骤3.3:如果智能包合法,将智能包的各个模块解压至指定目录;
步骤3.4:IntelliManager向所有相关模块发送安装消息,各模块从指定目录获取文件并完成各自处理;
步骤3.5:动态加载智能包管理动态库,将动态库中所有智能配置接口注册入HTTP服务;
步骤3.6:确认所有模块导入成功,安装完成。
步骤4:web静态资源加载
步骤4.1:用户在web端的http请求通过系统主服务进程转发到IntelliManager监听的端口;
步骤4.2:IntelliManager接受到请求后,根据请求去读取静态资源文件并将内容返回给web端。
步骤5:智能包算法配置与任务下发
步骤5.1:用户在web端下发算法任务配置,通过系统主服务进程将配置信息转发给IntelliManager;
步骤5.2:IntelliManager接收到数据后,根据从智能管理动态库中加载的协议处理逻辑,将现有的协议转换成解析可识别的协议(即,实现协议格式转换)并下发到解析模块。
步骤6:智能事件管理,详见图5,其中,web资源管理模块将智能应用界面加载至web、智能任务配置模块向解析服务下发任务配置,解析服务产生智能事件发送至视图库服务,视图库服务存储智能事件并接收来自智能事件管理模块的查询智能事件,从而向智能事件管理模块反馈查相匹配的智能事件,同时,智能事件管理模块将智能事件所对应的智能事件消息发送系统主服务,系统主服务将其发送至web显示,详见图7,为智能事件订阅与智能事件产生的时序图,在此不再赘述。
步骤6.1:用户在web界面订阅相关智能事件信息,订阅任务下发时携带需要订阅的事件以及相关配置;
步骤6.2:系统主服务接受到订阅请求后,注册对应智能事件的处理方法以及订阅的事件信息;
步骤6.3:系统主服务将订阅结果返回给web端;
步骤6.4:当事件产生时,视图库将事件信息存入数据库,并向IntelliManager通过推送该事件;
步骤6.5:IntelliManager模块中处理以及转换相关事件信息后将处理的结果推送到主系统服务的事件管理模块;
步骤6.6:主系统服务的事件管理模块根据推送的事件,读取相关的二进制图片,并组合成事件信息+图片二进制内容,过滤订阅的事件,找到相应的事件处理方法并执行;
步骤6.7:主系统服务的事件管理模块通过回调函数将事件信息和图片信息推送到web;
步骤6.8:web界面将处理好的事件信息和图片信息进行展示。
步骤7:智能包卸载
步骤7.1:IntelliManager向所有模块发送通知,告知卸载智能包;
步骤7.2:各模块完成卸载操作后通知IntelliManager;
步骤7.3:IntelliManager将动态库的链接取消,并删除相关文件,通知用户卸载完成。
在本实施例中,将智能应用与系统升级包分离,制作成智能包,使用类似于插件的形式在设备上动态加载或切换,开发了专于管理智能包的独立服务进程IntelliManager,将智能应用的管理模块与系统主服务进程解耦。将算法应用所需要的各个模块文件,包括解析算法、视图库插件、web静态资源、智能管理动态库封装在智能包中,交给IntelliManager管理。在智能应用导入设备并使用时,通过动态库实时加载技术将智能包内的资源调度起来,并实现与各个业务模块间的消息处理与通信。智能包内的所有内容都由独立进程管理并实时加载,只要将其导入设备即可使用。用户在操作时,就像使用了一个插件,即插即用。
具体地,使用一套框架支持当前与未来的智能包在边缘计算设备导入与使用,提高边缘计算端的算法可扩展性,制定智能包组成结构规则,将各部门所需的文件按照智能包服务模块可识别的规则放入智能包,保证了智能包的结构一致性。后续新开发的算法应用时,只要按照此规则进行打包,即可在边缘计算设备上导入并使用,为未来多种多样的智能算法应用需求打好基础。
具体地,开发新智能应用无需更新系统框架,开发人员只需对智能包本身进行开发维护,提高开发效率;由于管理智能包的服务已经进程化,并且与系统主服务进程解耦,开发者无需再将冗杂的协议处理添加到系统主服务进程中。协议处理逻辑、算法、web资源、视图库插件等所有模块都集成在智能包中,开发者只需对智能包本身进行维护,提高了开发效率。并且在交付时,统一通过智能包交付,不再是每个部门都有一份交付件,流程更加清晰。
请参阅图2,为本申请提供的一种动态加载应用程序的装置结构框图;包括:
存储模块1,用于提供至少一个智能包,所述智能包包括应用程序、所述应用程序所对应的视图库插件、所述应用程序所对应的静态资源、提供接口协议的智能管理动态库、存储加载所述应用程序的业务资源与版本信息的文件;
解析服务模块2,用于获取当前待加载的所述智能包,对所述智能包进行解析确定所述智能包所需的业务资源;
智能包管理模块3,用于判断当前服务进程是否满足所述智能包所需的业务资源,若满足所述智能包所需的业务资源,将解析的所述智能包分配到指定目录,在所述指定目录下协调管理应用程序;
程序加载模块4,用于监听来自外部的Http请求,响应于所述Http请求加载当前所述应用程序,实现所述应用程序的动态加载。
在某些实施方式中,还包括:
智能任务配置模块5,用于获取所述智能包对应的应用程序的任务配置信息;根据所述任务配置信息加载智能管理动态库生成协议处理逻辑,参照所述协议处理逻辑对协议进行协议转换,直到所有协议转换为可识别协议为止;基于转换后的协议运行当前所述应用程序,根据所述应用程序的运行结果确定应用程序的管理任务。
在某些实施方式中,还包括:
智能事件管理模块6,用于获取包含智能事件的管理请求;当接收到所述管理请求后,确定所述管理请求中的智能事件的处理方法以及智能事件消息,所述智能事件消息包括事件名称、事件发生时间与描述事件的图像;当检测到所述智能事件产生时,利用视图库插件将该智能事件消息进行存储;根据输入的匹配条件过滤存储的所述智能事件消息,按照所述匹配条件进行响应返回智能消息;展示返回的所述智能事件消息实现智能事件管理。
其中,需要说明的是,动态加载应用程序的装置与动态加载应用程序的方法为一一对应的关系,在此,各个模块与上述流程步骤所涉及的技术细节与技术效果均相同,在此不用一一赘述,请参照上述动态加载应用程序的方法。
下面参考图8,其示出了适于用来实现本公开实施例的电子设备(例如终端设备或服务器)7的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图8示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图8所示,电子设备7可以包括处理装置(例如中央处理器、图形处理器等)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储装置708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM703中,还存储有电子设备7操作所需的各种程序和数据。处理装置701、ROM702以及RAM703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
通常,以下装置可以连接至I/O接口705:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置706;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置707;包括例如磁带、硬盘等的存储装置708;以及通信装置709。通信装置709可以允许电子设备7与其他设备进行无线或有线通信以交换数据。虽然图8示出了具有各种装置的电子设备7,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置709从网络上被下载和安装,或者从存储装置708被安装,或者从ROM702被安装。在该计算机程序被处理装置701执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备执行图1的任一的步骤。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
综上所述,本申请通过将应用程序与系统升级包分离,形成携带应用程序的智能包,每次新增或切换应用程序时,只需加载选中的智能包即可实现动态加载,避免了边缘计算终端每次要安装一种新算法(应用程序)都需更新系统,大大降低了系统的维护成本,从用户角度来讲,提高了用户体验;从开发角度来讲,降低了开发工作量,提高了开发效率。所以,本申请有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本申请的原理及其功效,而非用于限制本申请。任何熟悉此技术的人士皆可在不违背本申请的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本申请所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本申请的权利要求所涵盖。
Claims (8)
1.一种动态加载应用程序的方法,其特征在于,所述方法包括以下步骤:
提供至少一个智能包,所述智能包包括应用程序、所述应用程序所对应的视图库插件、所述应用程序所对应的静态资源、提供接口协议的智能管理动态库、存储加载所述应用程序的业务资源与版本信息的文件;
获取当前待加载的所述智能包,对所述智能包进行解析,确定所述智能包携带的加载所述应用程序的业务资源;
判断当前服务进程是否满足所述智能包所携带的业务资源,若满足所述智能包所携带的业务资源,将解析的所述智能包分配到指定目录,在所述指定目录下协调管理所述应用程序;
监听来自外部的Http请求,响应于所述Http请求加载与当前所述Http请求匹配的所述应用程序,实现所述应用程序的动态加载;获取包含智能事件的管理请求;当接收到所述管理请求时,确定所述管理请求中的智能事件的处理方法以及智能事件消息,所述智能事件消息包括事件名称、事件发生时间与描述事件的图像;当检测到所述智能事件产生时,利用视图库插件将该智能事件消息进行存储;根据输入的匹配条件过滤存储的所述智能事件消息,按照所述匹配条件进行响应返回智能消息;展示返回的所述智能事件消息并实现智能事件管理。
2.根据权利要求1所述的动态加载应用程序的方法,其特征在于,还包括:
获取所述智能包对应的应用程序的任务配置信息;
根据所述任务配置信息加载智能管理动态库生成协议处理逻辑,参照所述协议处理逻辑对协议进行转换,直至所有协议通过解析转换为当前所述应用程序能够识别为止;其中,所有协议为将各接口协议进行整理封装,对WEB端提供一套结构清晰的接口协议;
基于转换后的协议运行当前所述应用程序,根据所述应用程序的运行结果确定应用程序的管理任务。
3.根据权利要求1所述的动态加载应用程序的方法,其特征在于,所述获取当前待加载的所述智能包之前,还包括:
创建用于监听服务进程的Http端口;
利用所述Http端口监听服务进程,当监听到服务进程时,初始化服务进程与所述应用程序所对应的视图库插件、智能管理动态库的链接,并开启智能包安装接口与智能包信息查询接口,完成初始化服务。
4.根据权利要求3所述的动态加载应用程序的方法,其特征在于,还包括:
获取所述智能包的卸载请求,将所述卸载请求进行分发通知;
响应于所述卸载请求进行卸载操作,之后,根据反馈的卸载状况生成卸载结果;
根据所述卸载结果取消服务进程与智能管理动态库之间的链接,并删除相关文件直至卸载完成为止。
5.根据权利要求1或2所述的动态加载应用程序的方法,其特征在于,还包括:
若所述Http请求的类型与当前加载的所述应用程序相匹配时,则响应于所述Http请求实现所述应用程序的动态加载;
若所述Http请求的类型与当前加载的所述应用程序不匹配时,则选择与所述Http请求的类型相匹配的所述应用程序进行切换,加载切换后的所述应用程序响应所述Http请求,实现所述应用程序的动态加载。
6.一种动态加载应用程序的装置,其特征在于,所述装置包括:
存储模块,用于提供至少一个智能包,所述智能包包括应用程序、所述应用程序所对应的视图库插件、所述应用程序所对应的静态资源、提供接口协议的智能管理动态库、存储加载所述应用程序的业务资源与版本信息的文件;
解析服务模块,用于解析当前待加载的所述智能包,确定所述智能包携带的加载所述应用程序的业务资源;
智能包管理模块,用于判断当前服务进程是否满足所述智能包所携带的业务资源,若满足所述智能包所携带的业务资源,将解析的所述智能包分配到指定目录,在所述指定目录下协调管理所述应用程序;
程序加载模块,用于监听来自外部的Http请求,响应于所述Http请求加载与当前所述Http请求匹配的所述应用程序,实现所述应用程序的动态加载;获取包含智能事件的管理请求;当接收到所述管理请求时,确定所述管理请求中的智能事件的处理方法以及智能事件消息,所述智能事件消息包括事件名称、事件发生时间与描述事件的图像;当检测到所述智能事件产生时,利用视图库插件将该智能事件消息进行存储;根据输入的匹配条件过滤存储的所述智能事件消息,按照所述匹配条件进行响应返回智能消息;展示返回的所述智能事件消息并实现智能事件管理。
7.一种电子设备,其特征在于,包括:
一个或多个处理装置;
存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理装置执行,使得所述一个或多个处理装置实现如1至5中任一所述动态加载应用程序的方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序用于使所述计算机执行权利要求1至5中任一所述动态加载应用程序的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210264028.0A CN114579206B (zh) | 2022-03-17 | 2022-03-17 | 动态加载应用程序的方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210264028.0A CN114579206B (zh) | 2022-03-17 | 2022-03-17 | 动态加载应用程序的方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114579206A CN114579206A (zh) | 2022-06-03 |
CN114579206B true CN114579206B (zh) | 2023-03-28 |
Family
ID=81774714
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210264028.0A Active CN114579206B (zh) | 2022-03-17 | 2022-03-17 | 动态加载应用程序的方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114579206B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117539521B (zh) * | 2024-01-10 | 2024-05-07 | 中航国际金网(北京)科技有限公司 | 应用程序升级方法、装置、非易失性存储介质及电子设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101702128B (zh) * | 2004-09-30 | 2014-03-19 | 茨特里克斯系统公司 | 用于隔离对软件应用程序的执行的方法和设备 |
CN101833465B (zh) * | 2010-04-23 | 2013-03-13 | 中国科学院声学研究所 | 一种支持应用程序动态加载运行的嵌入式系统 |
CN105094922B (zh) * | 2015-08-17 | 2019-03-05 | 北京奇虎科技有限公司 | 应用程序免安装运行控制方法及其装置 |
CN105607935B (zh) * | 2015-12-24 | 2019-12-13 | 北京奇虎科技有限公司 | 应用程序更新方法及其终端、服务器 |
CN107220083B (zh) * | 2017-05-22 | 2020-12-18 | 南京航空航天大学 | 一种安卓系统中免安装运行应用程序的方法和系统 |
-
2022
- 2022-03-17 CN CN202210264028.0A patent/CN114579206B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN114579206A (zh) | 2022-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109582310B (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN111796820B (zh) | 基于集成化组件构建前端页面的方法、装置及电子设备 | |
CN111367516B (zh) | 应用界面生成方法、装置及电子设备 | |
CN112286529A (zh) | 前端页面的开发方法、装置、设备及存储介质 | |
CN110795649A (zh) | 目标页面展示方法、装置、系统及电子设备 | |
CN110070593B (zh) | 图片预览信息的显示方法、装置、设备及介质 | |
CN111338944B (zh) | 远程过程调用rpc接口测试方法、装置、介质及设备 | |
CN114579206B (zh) | 动态加载应用程序的方法、装置、设备及介质 | |
CN113761871A (zh) | 富文本渲染方法、装置、电子设备以及存储介质 | |
CN110489162B (zh) | 安装包so文件精简方法、装置、介质和设备 | |
CN113127000B (zh) | 应用程序组件的编译方法、装置、设备及存储介质 | |
CN109669720B (zh) | 基于Promise的链式异步请求处理方法、装置及电子设备 | |
CN112558968A (zh) | 一种资源树视图的生成方法、装置、设备及存储介质 | |
CN111429127A (zh) | 一种应用于缴费的业务管理方法和装置 | |
CN113535254A (zh) | 一种微服务的处理方法、部署方法和相关装置 | |
CN116227625A (zh) | 智能模型开发方法、介质及设备 | |
CN116069227A (zh) | 一种界面交互方法、装置、设备及存储介质 | |
CN113296762B (zh) | 页面嵌入方法、装置、存储介质及电子设备 | |
CN116775174A (zh) | 一种基于用户界面框架的处理方法、装置、设备及介质 | |
CN108804088A (zh) | 协议处理方法和装置 | |
CN114895893A (zh) | 多源数据处理方法、装置、设备及存储介质 | |
CN103645896A (zh) | 基于html5实现应用功能的方法与装置 | |
CN112925521A (zh) | 一种界面生成方法和装置 | |
CN112783960A (zh) | 数据处理系统及方法、电子设备、计算机可读存储介质 | |
CN111625326A (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 |