CN109840103A - 应用程序容器的更新方法、装置和存储介质 - Google Patents
应用程序容器的更新方法、装置和存储介质 Download PDFInfo
- Publication number
- CN109840103A CN109840103A CN201711207581.6A CN201711207581A CN109840103A CN 109840103 A CN109840103 A CN 109840103A CN 201711207581 A CN201711207581 A CN 201711207581A CN 109840103 A CN109840103 A CN 109840103A
- Authority
- CN
- China
- Prior art keywords
- file
- operation information
- application container
- deleted
- application
- 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.)
- Granted
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明实施方式公开了应用程序容器的更新方法、装置和存储介质。该方法包括:接收包含操作命令的操作消息,将所述操作消息添加到操作队列;从所述操作队列中提取所述操作消息,解析所述操作消息以获取所述操作命令;基于所述操作命令更新所述应用程序容器或所述应用程序容器中的应用程序。本发明实施方式提出一种无需人工介入的应用程序容器更新方案。应用程序容器的更新过程及驻留在容器中的应用程序的更新过程都可以在后台静默完成,而无需人工介入。
Description
技术领域
本发明涉及智能终端应用程序(Application,APP)技术领域,特别是涉及一种应用程序容器的更新方法、装置和存储介质。
背景技术
应用程序容器(APP container)是近年兴起的应用开发、交付和运维的方式。随着应用模式的深入,原先无状态为主的应用逐渐发展到有状态的、驻留到容器中的应用。容器中的应用所保存的数据可以写入持久化的数据卷。以微服务架构为主的应用多为分布式系统,容器可能在多个节点中动态地启动、停止、伸缩或迁移。因此,当应用具有持久化的数据时,需要确保数据能被不同的节点所访问。另一方面,容器是面向应用的运行环境,数据通常要保存到文件系统中,即存储接口以文件形式更适合应用访问。
容器或驻留在容器中的应用经常会有更新需求,需要升级以保持功能正常工作。在现有技术中,需要大量人工介入以实现针对容器或驻留到容器中的应用的更新。比如,需要人工选择更新对象,人工触发更新按钮等等。
然而,大量的人工介入导致更新效率不高。而且,应用和应用程序容器通常具有不同的升级方式,难以统一升级。
发明内容
本发明实施方式提出一种应用程序容器的更新方法、装置和存储介质。
本发明实施方式的技术方案如下:
本发明实施方式提出的应用程序容器的更新方法,该方法包括:
应用程序容器的更新方法,该方法包括:
接收包含操作命令的操作消息,将所述操作消息添加到操作队列;
从所述操作队列中提取所述操作消息,解析所述操作消息以获取所述操作命令;
基于所述操作命令更新所述应用程序容器或所述应用程序容器中的应用程序。
可见,在本发明实施方式中,通过接收包含操作命令的操作消息的传递,实现了针对应用程序容器及驻留其中应用的静默更新,而无需人工介入。而且,应用和应用程序容器基于操作消息可以实现统一更新,提高了更新效率。
在一个实施方式中,所述操作消息还包含待添加文件的统一资源定位符及资源类型标识符,所述操作命令包含添加命令;
该方法还包括:解析所述操作消息以获取所述待添加文件的统一资源定位符和所述资源类型标识符;
所述基于所述操作命令更新应用程序容器或应用程序容器中的应用程序包括:
基于所述待添加文件的统一资源定位符获取所述待添加文件;
当所述资源类型标识符中包含应用程序标识时,将所述待添加文件保存到对应于所述应用程序标识的应用程序的存储空间;当所述资源类型标识符中包含应用程序容器标识时,将所述待添加文件保存到所述应用程序容器的存储空间。
可见,本发明实施方式实现了针对应用和应用程序容器的添加更新,而且基于操作消息中的资源类型标识符,还可以良好区分更新对象。
在一个实施方式中,所述操作消息还包含待删除文件的定位符及资源类型标识符,所述操作命令包含删除命令;
该方法还包括:解析所述操作消息以获取所述待删除文件的定位符和所述资源类型标识符;
所述基于所述操作命令更新应用程序容器或应用程序容器中的应用程序包括:
当所述资源类型标识符中包含应用程序标识时,基于所述待删除文件的定位符在对应于所述应用程序标识的应用程序的存储空间中定位并删除所述待删除文件;当所述资源类型标识符中包含应用程序容器标识时,基于所述待删除文件的定位符在所述应用程序容器的存储空间中定位并删除所述待删除文件。
本发明实施方式实现了针对应用和应用程序容器的删除更新,而且基于操作消息中的资源类型标识符,还可以良好区分更新对象。
在一个实施方式中,所述待删除文件的定位符包括下列中的至少一个:
待删除文件的文件名;待删除文件的相对地址;待删除文件的绝对地址;待删除文件对应的功能模块名。
可见,待删除文件的定位符具有多种实施方式,因此本发明实施方式具有良好的适用范围。
在一个实施方式中,所述操作消息还包含目标设备过滤条件,该方法还包括:
解析所述操作消息以获取所述目标设备过滤条件;
当确定不符合所述目标设备过滤条件时,忽略所述操作命令。
可见,通过在操作消息中设置目标设备过滤条件,并针对不符合目标设备过滤条件的应用程序容器不执行更新,实现了对更新目标的区别更新。
在一个实施方式中,所述从操作队列中提取操作消息包括下列中的至少一个:
基于操作消息进入操作队列的时间顺序,从所述操作队列中提取操作消息;
基于操作消息源的预定的优先级别,从所述操作队列中提取操作消息;
基于操作消息进入操作队列的时间顺序与操作消息源的预定的优先级别的加权运算结果,从所述操作队列中提取操作消息。
可见,从操作队列中提取操作消息具有多种实施方式,本发明实施方式具有良好的适用范围。本发明实施方式提出的应用程序容器的更新装置,包括:
消息接收模块,用于接收包含操作命令的操作消息,将所述操作消息添加到操作队列;
消息解析模块,用于从所述操作队列中提取所述操作消息,解析所述操作消息以获取所述操作命令;
更新模块,用于基于所述操作命令更新所述应用程序容器或所述应用程序容器中的应用程序。
可见,在本发明实施方式中,通过对包含操作命令的操作消息的传递,实现了针对应用程序容器及其中应用的静默更新,而无需人工介入。而且,应用和应用程序容器基于操作消息可以实现统一更新,提高了更新效率。
在一个实施方式中,所述操作消息还包含待添加文件的统一资源定位符及资源类型标识符,所述操作命令包含添加命令;
所述消息解析模块,还用于解析所述操作消息以获取所述待添加文件的统一资源定位符和所述资源类型标识符;
所述更新模块,用于基于所述待添加文件的统一资源定位符获取所述待添加文件;当所述资源类型标识符中包含应用程序标识时,将所述待添加文件保存到对应于所述应用程序标识的应用程序的存储空间;当所述资源类型标识符中包含应用程序容器标识时,将所述待添加文件保存到所述应用程序容器的存储空间。
可见,本发明实施方式实现了针对应用和应用程序容器的添加更新,而且基于操作消息中的资源类型标识符,还可以良好区分更新对象。
在一个实施方式中,所述操作消息还包含待删除文件的定位符及资源类型标识符,所述操作命令包含删除命令;
所述消息解析模块,还用于解析所述操作消息以获取所述待删除文件的标识和所述资源类型标识符;
所述更新模块,用于当所述资源类型标识符中包含应用程序标识时,基于所述待删除文件的定位符在对应于所述应用程序标识的应用程序的存储空间中定位并删除所述待删除文件;当所述资源类型标识符中包含应用程序容器标识时,基于所述待删除文件的定位符在所述应用程序容器的存储空间中定位并删除所述待删除文件。
本发明实施方式实现了针对应用和应用程序容器的删除更新,而且基于操作消息中的资源类型标识符,还可以良好区分更新对象。
在一个实施方式中,所述待删除文件的定位符包括下列中的至少一个:
待删除文件的文件名;待删除文件的相对地址;待删除文件的绝对地址;待删除文件对应的功能模块名。
可见,待删除文件的定位符包含多种实施方式,因此本发明实施方式具有良好的适用范围。
在一个实施方式中,所述操作消息还包含目标设备过滤条件;
所述消息解析模块,还用于解析所述操作消息以获取所述目标设备过滤条件;
所述更新模块,还用于当确定符合所述目标设备过滤条件时,忽略所述操作命令。
可见,通过在操作消息中设置目标设备过滤条件,并针对不符合目标设备过滤条件的应用程序容器不执行更新,实现了对更新目标的区别更新。
在一个实施方式中,所述消息解析模块,用于基于操作消息进入操作队列的时间顺序,从所述操作队列中提取操作消息,或基于操作消息源的预定的优先级别,从所述操作队列中提取操作消息,或基于操作消息进入操作队列的时间顺序与操作消息源的预定的优先级别的加权运算结果,从所述操作队列中提取操作消息。
可见,从操作队列中提取操作消息具有多种实施方式,本发明实施方式具有良好的适用范围。
本发明实施方式提出的计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述的应用程序容器的更新方法的步骤。
附图说明
图1为根据本发明实施方式的应用程序容器的更新方法的流程图。
图2为根据本发明实施方式的应用程序容器的更新过程的示范性示意图。
图3为根据本发明实施方式将应用程序加载到应用程序容器中的示范性示意图。
图4为根据本发明实施方式的应用程序容器的示范性架构示意图。
图5为根据本发明实施方式的应用程序容器的设备管理模块池的示范性示意图。
图6为根据本发明实施方式的应用程序容器中的迷你应用程序的启动工作流的示范性流程图。
图7为根据本发明实施方式的应用程序容器中的迷你应用程序的终止工作流的示范性流程图。
图8为根据本发明实施方式的应用程序容器的更新装置的结构图。
其中,附图标记如下:
具体实施方式
为了使本发明的技术方案及优点更加清楚明白,以下结合附图及实施方式,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用以阐述性说明本发明,并不用于限定本发明的保护范围。
为了描述上的简洁和直观,下文通过描述若干代表性的实施方式来对本发明的方案进行阐述。实施方式中大量的细节仅用于帮助理解本发明的方案。但是很明显,本发明的技术方案实现时可以不局限于这些细节。为了避免不必要地模糊了本发明的方案,一些实施方式没有进行细致地描述,而是仅给出了框架。下文中,“包括”是指“包括但不限于”,“根据……”是指“至少根据……,但不限于仅根据……”。由于汉语的语言习惯,下文中没有特别指出一个成分的数量时,意味着该成分可以是一个也可以是多个,或可理解为至少一个。
在本发明实施方式中,提出一种无需人工介入的应用程序容器更新方案。应用程序容器的更新操作及驻留在应用程序容器中的应用的更新操作都可以在后台静默完成,而无需人工介入。
图1为根据本发明实施方式的应用程序容器的更新方法的流程图。图1所示方法应用于应用程序容器侧。
如图1所示,该方法包括:
步骤101:接收包含操作命令的操作消息,将操作消息添加到操作队列。
在这里,首先由服务器触发启动应用程序容器升级流程。具体地,服务器发送操作消息到应用程序容器,该操作消息包含用于更新应用程序容器或应用程序容器中应用程序的操作命令。在应用程序容器侧,应用程序容器接收包含操作命令的操作消息,并将操作消息添加到本地所保存的操作队列。
步骤102:从操作队列中提取操作消息,解析操作消息以获取操作命令。
在这里,应用程序容器从操作队列中提取操作消息,解析操作消息以获取操作命令。
应用程序容器可以基于多种触发方式从操作队列中提取操作消息。比如,基于操作消息进入操作队列的时间顺序、操作消息源的预定的优先级别或基于随机顺序,等等。
在一个实施方式中,应用程序容器基于操作消息进入操作队列的时间顺序,从操作队列中提取操作消息。
比如,假定操作队列中包含操作消息A、操作消息B和操作消息C,其中操作消息A进入操作队列的时间最早,操作消息B进入操作队列的时间最晚,操作消息C进入操作队列的时间在操作消息A进入操作队列的时间和操作消息C进入操作队列的时间之间。那么,应用程序容器判定从操作队列中提取操作消息的提取顺序为:首先提取操作消息A;然后提取操作消息C;最后提取操作消息B。具体的:应用程序容器首先从操作队列中提取操作消息A,解析操作消息A以获取包含在操作消息A中的操作命令,并基于操作消息A中的操作命令完成更新。然后,从操作队列中提取操作消息C,解析操作消息C以获取包含在操作消息C中的操作命令,并基于操作消息C中的操作命令完成更新。最后,从操作队列中提取操作消息B,解析操作消息B以获取包含在操作消息B中的操作命令,并基于操作消息B中的操作命令完成更新。
在一个实施方式中,应用程序容器基于操作消息源的预定的优先级别,从操作队列中提取操作消息。
比如,假定操作队列中包含操作消息A、操作消息B和操作消息C,其中操作消息A的来源是服务器A,操作消息B的来源是服务器B,操作消息C的来源是服务器C,而且服务器A的优先级高于服务器B,服务器B的优先级高于服务器C。那么,应用程序容器判定操作消息提取顺序为:首先提取操作消息A;然后提取操作消息B;最后提取操作消息C。具体的:应用程序容器首先从操作队列中提取操作消息A,解析操作消息A以获取包含在操作消息A中的操作命令,并基于操作消息A中的操作命令完成更新。然后,从操作队列中提取操作消息B,解析操作消息B以获取包含在操作消息B中的操作命令,并基于操作消息B中的操作命令完成更新。最后,从操作队列中提取操作消息C,解析操作消息C以获取包含在操作消息C中的操作命令,并基于操作消息C中的操作命令完成更新。
在一个实施方式中,应用程序容器基于操作消息进入操作队列的时间顺序与操作消息源的预定的优先级别的加权运算结果,从操作队列中提取操作消息。
比如,假定操作队列中包含操作消息A、操作消息B和操作消息C,其中操作消息A进入操作队列的时间最早,操作消息B进入操作队列的时间最晚,操作消息C进入操作队列的时间在操作消息A进入操作队列的时间和操作消息C进入操作队列的时间之间,而且操作消息A的来源是服务器A,操作消息B的来源是服务器B,操作消息C的来源是服务器C,而且服务器A的优先级高于服务器B,服务器B的优先级高于服务器C。各个操作消息按照时间从先到后顺序的权值为0.5,0.4和0.1;各个操作消息源按优先级从高到低顺序的权值为0.6,0.3和0.1。因此,操作消息A的加权运算结果为0.5+0.6=1.1;操作消息B的加权运算结果为0.1+0.3=0.4;操作消息C的加权运算结果为0.4+0.1=0.5。那么,应用程序容器按照加权运算结果从大到小的顺序判定操作消息提取顺序为:首先操作消息A;然后提取操作消息C;最后提取操作消息B。具体的:应用程序容器首先从操作队列中提取操作消息A,解析操作消息A以获取包含在操作消息A中的操作命令,并基于操作消息A中的操作命令完成更新。然后,从操作队列中提取操作消息C,解析操作消息C以获取包含在操作消息C中的操作命令,并基于操作消息C中的操作命令完成更新。最后,从操作队列中提取操作消息B,解析操作消息B以获取包含在操作消息B中的操作命令,并基于操作消息B中的操作命令完成更新。
以上示范性描述了从操作队列中提取操作消息的示范性实例,本领域技术人员可以意识到,这种描述仅是示范性的,并不用于限定本发明实施方式的保护范围。
步骤103:基于操作命令更新应用程序容器或应用程序容器中的应用程序。
在一个实施方式中,操作消息还包含待添加文件的统一资源定位符(UniformResource Identifier,URL)及资源类型标识符,该操作命令包含添加命令。该方法还包括:解析操作消息以获取待添加文件的URL和资源类型标识符。此时,基于操作命令更新应用程序容器或应用程序容器中的应用程序包括:基于待添加文件的URL获取待添加文件;当资源类型标识符中包含应用程序标识时,将待添加文件保存到对应于应用程序标识的应用程序的存储空间,从而实现针对应用程序的添加更新操作。当资源类型标识符中包含应用程序容器标识时,将待添加文件保存到应用程序容器的存储空间,从而实现针对应用程序容器的添加更新操作。
在一个实施方式中,操作消息还包含待删除文件的定位符及资源类型标识符,操作命令包含删除命令。该方法还包括:解析操作消息以获取待删除文件的定位符和资源类型标识符。此时,基于操作命令更新应用程序容器或应用程序容器中的应用程序包括:当资源类型标识符中包含应用程序标识时,基于待删除文件的定位符在对应于应用程序标识的应用程序的存储空间中定位并删除待删除文件,从而实现针对应用程序的删除更新操作;当资源类型标识符中包含应用程序容器标识时,基于待删除文件的定位符在应用程序容器的存储空间中定位并删除待删除文件,从而实现针对应用程序容器的删除更新操作。
优选的,待删除文件的定位符包括下列中的至少一个:待删除文件的文件名;待删除文件的相对地址;待删除文件的绝对地址;待删除文件对应的功能模块名,等等。
比如,当定位符实施为待删除文件的文件名时,可以直接在应用容器所在的硬件实体的存储空间中,利用文件名作为检索项以搜索待删除文件。当定位符实施为待删除文件的相对地址时,可以与预定的偏置地址执行地址运算以生成绝对地址,并在应用容器所在的硬件实体的存储空间中利用绝对地址作为检索项以搜索待删除文件。当定位符实施为待删除文件的绝对地址时,直接在应用容器所在的硬件实体的存储空间中利用绝对地址作为检索项以搜索待删除文件。当定位符实施为待删除文件对应的功能模块名时,可以通过容器内部的映射表来执行对应文件或文件夹的删除。
以上示范性描述了定位符的具体实例,本领域技术人员可以意识到,这种描述仅是示范性的,并不用于限定本发明实施方式的保护范围。
在一个实施方式中,操作消息还包含目标设备过滤条件,该方法还包括:解析操作消息以获取目标设备过滤条件;当确定不符合目标设备过滤条件时,忽略操作命令。
比如,目标设备过滤条件可以为应用程序容器的操作系统平台(比如,安卓或iOS)、操作系统版本号或设备版本号,等等。应用程序容器解析操作消息以获取目标设备过滤条件,并当判定应用程序容器自身的资源是否与目标设备过滤条件相符合,如果不符合则忽略操作命令。
举例,假定操作消息中包含的目标设备过滤条件指定操作系统平台为安卓,而应用程序容器的操作系统为iOS,则应用程序容器判定不符合目标设备过滤条件,并忽略该操作消息中的操作命令。
再举例,假定操作消息中包含的目标设备过滤条件指定操作系统平台为iOS且版本大于7.0。应用程序容器的操作系统为iOS且版本为6.0,则应用程序容器判定不符合目标设备过滤条件,并忽略该操作消息中的操作命令。
再举例,假定操作消息中包含的目标设备过滤条件指定操作系统平台为iOS且版本大于7.0。应用程序容器的操作系统为iOS且版本为8.0,则应用程序容器判定符合目标设备过滤条件,则基于操作命令更新应用程序容器或应用程序容器中的应用程序。
以上示范性描述了操作消息的具体内容实例,本领域技术人员可以意识到,这种描述仅是示范性的,并不用于限定本发明实施方式的保护范围。
基于上述流程,下面具体说明本发明实施方式的具体实例。
图2为根据本发明实施方式的应用程序容器的更新过程示意图。
在图2中,服务器21与智能终端22具有通信连接。智能终端22中部署有应用程序容器,应用程序容器中包含有多个应用。
服务器21向智能终端22发送包含操作命令的操作消息,智能终端22的应用程序容器按照接收到操作消息的时间顺序将操作消息依次添加到操作队列23。在图2中,操作队列23包含6个操作消息,分别为操作消息231、操作消息232、操作消息233、操作消息234、操作消息235和操作消息236,其中最后接收到的操作消息为操作消息231,布置在操作队列23的最上部。
应用程序容器还包含操作中心24。操作中心24按照先进先出的顺序从操作队列23中依次提取出操作消息,解析该操作消息以获取操作命令,再基于操作命令更新应用程序容器或应用程序容器中的应用程序。针对每个操作消息,操作中心24首先判断操作命令为添加命令25或删除命令26。如果操作命令为添加命令25,则操作中心24从操作消息中进一步获取待添加文件的URL,并基于该URL通过下载器27从服务器21下载待添加文件,然后执行解包操作28,并通过文件管理器29执行文件存储操作30。如果操作命令为删除命令26,则操作中心24从操作消息中进一步获取待删除文件的定位符,并基于该定位符通过文件管理器29执行文件删除操作31。
可见,可以由服务器21触发应用程序容器的更新,升级操作可以静默地完成,无需用户交互。
操作消息的示范性格式如表1所示:
操作命令 | 添加,删除 |
资源类型 | 图像,视频,音频,文本,包,模块文件 |
目标设备过滤条件 | 平台,操作系统版本,设备版本 |
资源URL | 通常的URL或相对地址 |
版本 | 该操作消息包含资源的版本 |
表1
其中,操作消息包含操作命令字段、资源类型字段、目标设备过滤条件字段、资源URL字段和版本字段。操作命令字段包含添加操作命令或删除操作命令;资源类型字段包括图像、视频、音频、文本、包或模块文件(如待删除文件的定位符)等等;目标设备过滤条件字段包括平台、操作系统版本或设备版本等过滤条件;资源URL包括通常的URL或相对地址,等等;版本字段描述有该该操作消息包含资源的版本。
示范性的,操作消息的示范性实例如下:
在上述操作消息中,操作命令为添加命令;目标设备过滤条件为:iOS平台且版本大于7.0,而且设备版本大于5;资源的URL为http://samplecode.com/sample.apk;资源类型为模块文件。
当应用程序容器接收到操作消息时,将操作消息推送到操作队列23中,以便所有操作命令按顺序执行。在通过操作队列触发后,操作消息将到达操作中心24。操作中心24如果判定操作消息中所包含的操作命令属于添加(add)命令25,则操作消息被转发给下载器27,下载器27通过操作消息中的资源URL从服务器21获取资源,然后下载资源被解包28(如有必要),并由文件管理器29保存到合适位置。操作中心24如果判定操作命令属于删除(del)命令26,则操作消息将直接传送到文件管理器29,然后文件管理器29完成删除操作31。
基于上述描述,下面以将应用程序容器应用到设备管理领域为实例对本发明实施方式进行示范性说明。在设备管理领域中,通常将应用程序容器中的应用程序称为设备管理迷你应用,可以简称为迷你应用(mini app)。
图3为根据本发明实施方式将应用程序加载到应用程序容器中的示范性示意图。如图3所示,用户通过具有摄像头的智能终端40扫描QR码41以从QR码41中获取网址,智能终端40再基于网址从云端42获取迷你应用,并下载迷你应用到设备管理应用容器43中,最后在设备管理容器43中加载迷你应用。
图4为根据本发明实施方式的迷你应用程序容器的架构示意图。
如图4所示,迷你应用程序容器包括:访问层51、下载器52、安全性和验证层53、运行时适配器层54、模块池55和运行时环境56。下面对迷你应用程序容器的组成部分进行具体描述。
访问层51用于在初始阶段处理迷你应用,包括迷你应用的获取方式和迷你应用的存储方式。访问层51包括扫描器61、存储器62、迷你应用路由器63和扫描历史64。扫描器61包括QR码扫描器611和条形码扫描器612。存储器62包括迷你应用缓存621和迷你应用清除器622。在访问层51中,可以通过两种方式访问迷你应用程序:QR码和条形码。访问层51的存储部分用于缓存迷你应用以及在适当的时间清理迷你应用。容器是一个通用容器,读取不同的访问QR码可以跳转到不同的迷你应用。可以利用访问层51的迷你应用路由器63完成迷你应用只见的跳转工作,扫描历史64用于保存历史记录视图。
下载器52用于从服务器下载相关内容。当容器需要打包的迷你应用时,下载器52触发从服务器获取迷你应用的任务。如果需要获取模块,下载器52触发模块的下载任务。下载器52包括迷你应用下载器521和模块下载器522。
安全和验证层53用于处理迷你应用的安全问题。作为从QR码获取的迷你应用程序,通常需要加密关键信息,因此安全和验证层53包括加密器711和解密器712在内的安全模块是必要的。此外,安全和验证层53还需要验证某个迷你应用是否合法以及是否与用户设备相匹配,因此还需要验证模块(包括完整性检测721和密钥检测722)来执行集成检查和密钥验证检查。
模块池55为迷你应用程序开发提供大量的通用模块。通用模块可以包括数据中心551、HTTP管理552、Json解析工具或远程记录器554,等等。开发人员可以导入这些相关的通用模块从而节约开发时间。比如,可以导入数据中心551以在磁盘上保存或加载数据存储;可以导入HTTP管理552以发送请求并从服务器接收响应;可以导入Json解析工具(Kit),以将JSON格式序列化和反序列化为与平台相关的格式,例如Dictionary或Map。以上示范性描述了模块池55的典型实例,本领域技术人员可以意识到,这种描述仅是示范性的,并不用于限定本发明实施方式的保护范围。
运行时适配器层54是平台运行时和容器之间的桥梁。对于迷你应用程序容器,可以分别支持网络(Web)应用和跨平台应用。对于网络应用程序,运行时适配器层54可以实施为连接H5和本机运行时的爪洼脚本桥(Javascript Bridge)81;对于跨平台的应用,特别是Cordova或Weex编写的应用程序,运行时适配器层54可以实施为Cordova运行时适配器731或Weex运行时适配器732,以确保这些应用程序可以在容器中运行。
本地APP运行时57是最小级别的迷你应用容器,提供本地应用运行时和网络应用运行时。对于本地应用运行时,在iOS平台或安卓平台上将会有所不同。本地APP运行时57包含iOS运行时571和安卓运行时572。对于网络应用运行时,容器实施为H5运行时581(可能具体是Web浏览器、应用中的Web视图)或爪洼脚本运行时582,以支持Web迷你应用在容器中运行。
以上示范性描述了应用程序容器的架构的典型实例,本领域技术人员可以意识到,这种描述仅是示范性的,并不用于限定本发明实施方式的保护范围。
除了独立开发外,设备管理应用程序容器还提供了许多用于设备管理的子模块,包括设备映射工具包,安装步骤,固件更新/升级,设备远程记录器等。图5为根据本发明实施方式的应用程序容器的设备管理模块池的示意图。在图5中,模块池55可以包含设备映射工具91、设备安装步骤92、固件管理93、状态检查95、设备指示96、设备远程记录器97和固件升级98。可见,本发明实施方式的应用程序容器包含可以供驻留其中的应用共享使用的应用模块,应用开发人员无需实现每个应用模块。
迷你应用的启动工作流程包括:用户通过QR码或条形码访问迷你应用程序,代码可以生成到URL中,然后迷你应用程序容器分析此URL并提取信息,获得迷你应用ID以及迷你应用的密钥。然后工作流将进入验证程序,以检查迷你应用是否合法。可以检查迷你应用的密钥或者检查密钥和设备ID是否匹配。如果验证没有通过,则会转到错误处理程序,然后工作流程进入结束;如果验证通过,容器将从服务器触发下载任务以下载迷你应用。下载完成后,迷你应用被缓存到磁盘,然后将迷你应用加载到容器中,开始工作流程。
图6为根据本发明实施方式的应用程序容器中的迷你应用程序的启动工作流的示范性流程图。如图6所示,迷你应用的启动工作流的流程具体包括:
步骤601:智能终端通过摄像头扫描QR码或条形码。
步骤602:解析QR码或条形码中的URL,获取迷你应用ID以及迷你应用的密钥。
步骤603:执行验证程序。验证通过,执行步骤604~步骤606;验证不通过,执行步骤607~步骤608。
步骤604:从服务器触发下载任务以下载迷你应用。
步骤605:缓存迷你应用到磁盘。
步骤606:迷你应用加载到容器中,并结束本流程。
步骤607:跳转到错误处理程序。
步骤608:结束本流程。
当容器接收到迷你应用退出消息时,容器首先清理与迷你应用相关的内存。然后,容器判断是否有必要从容器中完全删除该迷你应用程序。这个策略可能涉及一些算法,如LRU,然后工作流程将结束。
图7为根据本发明实施方式的应用程序容器中的迷你应用程序的终止工作流的示范性流程图。
如图7所示,应用程序的终止工作流的具体步骤包括:
步骤701:基于外部过程接收迷你应用退出消息。
步骤702:提取该迷你应用。
步骤703:清理与迷你应用相关的内存。
步骤704:从容器中删除该迷你应用程序。
步骤705:结束本流程。
基于上述描述,本发明实施方式还提出了一种应用程序容器的更新装置。
图8为根据本发明实施方式的应用程序容器的更新装置的结构图。
如图8所示,该装置包括:
消息接收模块801,用于接收包含操作命令的操作消息,将操作消息添加到操作队列;
消息解析模块802,用于从操作队列中提取所述操作消息,解析操作消息以获取操作命令;
更新模块803,用于基于操作命令更新所述应用程序容器或所述应用程序容器中的应用程序。
在一个实施方式中,操作消息还包含待添加文件的URL及资源类型标识符,操作命令包含添加命令;
消息解析模块802,还用于解析操作消息以获取待添加文件的URL和资源类型标识符;
更新模块803,用于基于待添加文件的URL获取待添加文件;当资源类型标识符中包含应用程序标识时,将待添加文件保存到对应于应用程序标识的应用程序的存储空间;当资源类型标识符中包含应用程序容器标识时,将待添加文件保存到应用程序容器的存储空间。
在一个实施方式中,操作消息还包含待删除文件的定位符及资源类型标识符,操作命令包含删除命令;
消息解析模块802,还用于解析操作消息以获取待删除文件的标识和资源类型标识符;
更新模块803,用于当资源类型标识符中包含应用程序标识时,基于待删除文件的定位符在对应于应用程序标识的应用程序的存储空间中定位并删除待删除文件;当资源类型标识符中包含应用程序容器标识时,基于待删除文件的定位符在应用程序容器的存储空间中定位并删除待删除文件。
在一个实施方式中,待删除文件的定位符包括下列中的至少一个:待删除文件的文件名;待删除文件的相对地址;待删除文件的绝对地址;待删除文件对应的功能模块名。
在一个实施方式中,操作消息还包含目标设备过滤条件,该方法还包括:消息解析模块802,还用于解析操作消息以获取所述目标设备过滤条件;更新模块803,还用于当确定符合目标设备过滤条件时,忽略操作命令。
在一个实施方式中,消息解析模块802,用于基于操作消息进入操作队列的时间顺序,从操作队列中提取操作消息,或基于操作消息源的预定的优先级别,从操作队列中提取操作消息,或基于操作消息进入操作队列的时间顺序与操作消息源的预定的优先级别的加权运算结果,从操作队列中提取操作消息。
需要说明的是,上述各流程和各结构图中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。各模块的划分仅仅是为了便于描述采用的功能上的划分,实际实现时,一个模块可以分由多个模块实现,多个模块的功能也可以由同一个模块实现,这些模块可以位于同一个设备中,也可以位于不同的设备中。
各实施方式中的硬件模块可以以机械方式或电子方式实现。例如,一个硬件模块可以包括专门设计的永久性电路或逻辑器件(如专用处理器,如FPGA或ASIC)用于完成特定的操作。硬件模块也可以包括由软件临时配置的可编程逻辑器件或电路(如包括通用处理器或其它可编程处理器)用于执行特定操作。至于具体采用机械方式,或是采用专用的永久性电路,或是采用临时配置的电路(如由软件进行配置)来实现硬件模块,可以根据成本和时间上的考虑来决定。
本发明还提供了一种机器可读的存储介质,存储用于使一机器执行如本申请所述方法的指令。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施方式的功能的软件程序代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。此外,还可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作。还可以将从存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展单元上的CPU等来执行部分和全部实际操作,从而实现上述实施方式中任一实施方式的功能。
用于提供程序代码的存储介质实施方式包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (13)
1.应用程序容器的更新方法,其特征在于,该方法包括:
接收包含操作命令的操作消息,将所述操作消息添加到操作队列(101);
从所述操作队列中提取所述操作消息,解析所述操作消息以获取所述操作命令(102);
基于所述操作命令更新所述应用程序容器或所述应用程序容器中的应用程序(103)。
2.根据权利要求1所述的应用程序容器的更新方法,其特征在于,所述操作消息还包含待添加文件的统一资源定位符及资源类型标识符,所述操作命令包含添加命令;
该方法还包括:解析所述操作消息以获取所述待添加文件的统一资源定位符和所述资源类型标识符;
所述基于所述操作命令更新应用程序容器或应用程序容器中的应用程序(103)包括:
基于所述待添加文件的统一资源定位符获取所述待添加文件;
当所述资源类型标识符中包含应用程序标识时,将所述待添加文件保存到对应于所述应用程序标识的应用程序的存储空间;当所述资源类型标识符中包含应用程序容器标识时,将所述待添加文件保存到所述应用程序容器的存储空间。
3.根据权利要求1所述的应用程序容器的更新方法,其特征在于,所述操作消息还包含待删除文件的定位符及资源类型标识符,所述操作命令包含删除命令;
该方法还包括:解析所述操作消息以获取所述待删除文件的定位符和所述资源类型标识符;
所述基于所述操作命令更新应用程序容器或应用程序容器中的应用程序(103)包括:
当所述资源类型标识符中包含应用程序标识时,基于所述待删除文件的定位符在对应于所述应用程序标识的应用程序的存储空间中定位并删除所述待删除文件;当所述资源类型标识符中包含应用程序容器标识时,基于所述待删除文件的定位符在所述应用程序容器的存储空间中定位并删除所述待删除文件。
4.根据权利要求3所述的应用程序容器的更新方法,其特征在于,所述待删除文件的定位符包括下列中的至少一个:
待删除文件的文件名;待删除文件的相对地址;待删除文件的绝对地址;待删除文件对应的功能模块名。
5.根据权利要求1所述的应用程序容器的更新方法,其特征在于,所述操作消息还包含目标设备过滤条件,该方法还包括:
解析所述操作消息以获取所述目标设备过滤条件;
当确定不符合所述目标设备过滤条件时,忽略所述操作命令。
6.根据权利要求1-5中任一项所述的应用程序容器的更新方法,其特征在于,所述从操作队列中提取操作消息包括下列中的至少一个:
基于操作消息进入操作队列的时间顺序,从所述操作队列中提取操作消息;
基于操作消息源的预定的优先级别,从所述操作队列中提取操作消息;
基于操作消息进入操作队列的时间顺序与操作消息源的预定的优先级别的加权运算结果,从所述操作队列中提取操作消息。
7.应用程序容器的更新装置,其特征在于,包括:
消息接收模块(801),用于接收包含操作命令的操作消息,将所述操作消息添加到操作队列;
消息解析模块(802),用于从所述操作队列中提取所述操作消息,解析所述操作消息以获取所述操作命令;
更新模块(803),用于基于所述操作命令更新所述应用程序容器或所述应用程序容器中的应用程序。
8.根据权利要求7所述的应用程序容器的更新装置,其特征在于,所述操作消息还包含待添加文件的统一资源定位符及资源类型标识符,所述操作命令包含添加命令;
所述消息解析模块(802),还用于解析所述操作消息以获取所述待添加文件的统一资源定位符和所述资源类型标识符;
所述更新模块(803),用于基于所述待添加文件的统一资源定位符获取所述待添加文件;当所述资源类型标识符中包含应用程序标识时,将所述待添加文件保存到对应于所述应用程序标识的应用程序的存储空间;当所述资源类型标识符中包含应用程序容器标识时,将所述待添加文件保存到所述应用程序容器的存储空间。
9.根据权利要求7所述的应用程序容器的更新装置,其特征在于,所述操作消息还包含待删除文件的定位符及资源类型标识符,所述操作命令包含删除命令;
所述消息解析模块(802),还用于解析所述操作消息以获取所述待删除文件的标识和所述资源类型标识符;
所述更新模块(803),用于当所述资源类型标识符中包含应用程序标识时,基于所述待删除文件的定位符在对应于所述应用程序标识的应用程序的存储空间中定位并删除所述待删除文件;当所述资源类型标识符中包含应用程序容器标识时,基于所述待删除文件的定位符在所述应用程序容器的存储空间中定位并删除所述待删除文件。
10.根据权利要求9所述的应用程序容器的更新装置,其特征在于,所述待删除文件的定位符包括下列中的至少一个:
待删除文件的文件名;待删除文件的相对地址;待删除文件的绝对地址;待删除文件对应的功能模块名。
11.根据权利要求7所述的应用程序容器的更新装置,其特征在于,所述操作消息还包含目标设备过滤条件;
所述消息解析模块(802),还用于解析所述操作消息以获取所述目标设备过滤条件;
所述更新模块(803),还用于当确定符合所述目标设备过滤条件时,忽略所述操作命令。
12.根据权利要求7-11中任一项所述的应用程序容器的更新装置,其特征在于,
所述消息解析模块(802),用于基于操作消息进入操作队列的时间顺序,从所述操作队列中提取操作消息,或基于操作消息源的预定的优先级别,从所述操作队列中提取操作消息,或基于操作消息进入操作队列的时间顺序与操作消息源的预定的优先级别的加权运算结果,从所述操作队列中提取操作消息。
13.计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的应用程序容器的更新方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711207581.6A CN109840103B (zh) | 2017-11-27 | 2017-11-27 | 应用程序容器的更新方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711207581.6A CN109840103B (zh) | 2017-11-27 | 2017-11-27 | 应用程序容器的更新方法、装置和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109840103A true CN109840103A (zh) | 2019-06-04 |
CN109840103B CN109840103B (zh) | 2022-10-25 |
Family
ID=66879081
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711207581.6A Active CN109840103B (zh) | 2017-11-27 | 2017-11-27 | 应用程序容器的更新方法、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109840103B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111427664A (zh) * | 2020-03-25 | 2020-07-17 | 杭州电子科技大学 | 基于容器的协议解析方法、装置、系统以及存储介质 |
CN111538600A (zh) * | 2020-02-25 | 2020-08-14 | 远景智能国际私人投资有限公司 | 消息处理方法、装置、计算机设备及存储介质 |
CN112394959A (zh) * | 2020-11-18 | 2021-02-23 | 深圳市元征科技股份有限公司 | 胎压传感器升级方法、手持胎压工具和胎压传感器 |
JP2022055285A (ja) * | 2020-09-28 | 2022-04-07 | ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド | ミニプログラムパッケージ送信方法、装置、電子機器コンピュータ可読媒体およびコンピュータプログラム製品 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050177827A1 (en) * | 2000-03-24 | 2005-08-11 | Fong Kester L. | Method of administering software components using asynchronous messaging in a multi-platform, multi-programming language environment |
CN103809979A (zh) * | 2014-02-25 | 2014-05-21 | 南京南瑞继保电气有限公司 | 一种人机交互软件模块集成系统及其实现方法 |
US20140149485A1 (en) * | 2012-11-26 | 2014-05-29 | Accenture Global Services Limited | Method and system for managing user state for applications deployed on platform as a service (paas) clouds |
CN104731580A (zh) * | 2015-01-12 | 2015-06-24 | 上海新炬网络信息技术有限公司 | 基于Karaf与ActiveMQ的自动化运维系统及其实现方法 |
US20160132214A1 (en) * | 2014-11-11 | 2016-05-12 | Amazon Technologies, Inc. | Application delivery agents on virtual desktop instances |
US20160246586A1 (en) * | 2015-02-19 | 2016-08-25 | Vmware, Inc. | Methods and apparatus to manage application updates in a cloud environment |
US20170034198A1 (en) * | 2011-09-14 | 2017-02-02 | Architecture Technology Corporation | Fight-through nodes for survivable computer network |
US20170034023A1 (en) * | 2015-07-27 | 2017-02-02 | Datagrid Systems, Inc. | Techniques for evaluating server system reliability, vulnerability and component compatibility using crowdsourced server and vulnerability data |
CN107111508A (zh) * | 2014-09-30 | 2017-08-29 | 亚马逊技术有限公司 | 用于执行程序代码的请求的程序性事件检测和消息生成 |
-
2017
- 2017-11-27 CN CN201711207581.6A patent/CN109840103B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050177827A1 (en) * | 2000-03-24 | 2005-08-11 | Fong Kester L. | Method of administering software components using asynchronous messaging in a multi-platform, multi-programming language environment |
US20170034198A1 (en) * | 2011-09-14 | 2017-02-02 | Architecture Technology Corporation | Fight-through nodes for survivable computer network |
US20140149485A1 (en) * | 2012-11-26 | 2014-05-29 | Accenture Global Services Limited | Method and system for managing user state for applications deployed on platform as a service (paas) clouds |
CN103809979A (zh) * | 2014-02-25 | 2014-05-21 | 南京南瑞继保电气有限公司 | 一种人机交互软件模块集成系统及其实现方法 |
CN107111508A (zh) * | 2014-09-30 | 2017-08-29 | 亚马逊技术有限公司 | 用于执行程序代码的请求的程序性事件检测和消息生成 |
US20160132214A1 (en) * | 2014-11-11 | 2016-05-12 | Amazon Technologies, Inc. | Application delivery agents on virtual desktop instances |
CN104731580A (zh) * | 2015-01-12 | 2015-06-24 | 上海新炬网络信息技术有限公司 | 基于Karaf与ActiveMQ的自动化运维系统及其实现方法 |
US20160246586A1 (en) * | 2015-02-19 | 2016-08-25 | Vmware, Inc. | Methods and apparatus to manage application updates in a cloud environment |
US20170034023A1 (en) * | 2015-07-27 | 2017-02-02 | Datagrid Systems, Inc. | Techniques for evaluating server system reliability, vulnerability and component compatibility using crowdsourced server and vulnerability data |
Non-Patent Citations (2)
Title |
---|
DINKAR SITARAM等: ""Chapter 3 - Platform as a Service"", 《MOVING TO THE CLOUD:DEVELOPING APPS IN THE NEW WORLD OF CLOUD COMPUTING》 * |
边贺臣: ""基于广电网的应用软件商店设计与实现"", 《中国优秀博硕士学位论文全文数据库(硕士) 信息科技辑》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111538600A (zh) * | 2020-02-25 | 2020-08-14 | 远景智能国际私人投资有限公司 | 消息处理方法、装置、计算机设备及存储介质 |
CN111538600B (zh) * | 2020-02-25 | 2023-09-12 | 远景智能国际私人投资有限公司 | 消息处理方法、装置、计算机设备及存储介质 |
CN111427664A (zh) * | 2020-03-25 | 2020-07-17 | 杭州电子科技大学 | 基于容器的协议解析方法、装置、系统以及存储介质 |
CN111427664B (zh) * | 2020-03-25 | 2024-04-12 | 杭州电子科技大学 | 基于容器的协议解析方法、装置、系统以及存储介质 |
JP2022055285A (ja) * | 2020-09-28 | 2022-04-07 | ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド | ミニプログラムパッケージ送信方法、装置、電子機器コンピュータ可読媒体およびコンピュータプログラム製品 |
JP7191999B2 (ja) | 2020-09-28 | 2022-12-19 | ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド | ミニプログラムパッケージ送信方法、装置、電子機器コンピュータ可読媒体およびコンピュータプログラム製品 |
CN112394959A (zh) * | 2020-11-18 | 2021-02-23 | 深圳市元征科技股份有限公司 | 胎压传感器升级方法、手持胎压工具和胎压传感器 |
Also Published As
Publication number | Publication date |
---|---|
CN109840103B (zh) | 2022-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109840103A (zh) | 应用程序容器的更新方法、装置和存储介质 | |
US8869111B2 (en) | Method and system for generating test cases for a software application | |
CN105512044B (zh) | 用于关键字驱动测试的对象库的更新方法及系统 | |
CN108519945A (zh) | 覆盖率测试方法、装置及存储设备 | |
CN109800005B (zh) | 一种客户端热更新方法及装置 | |
CN109144548A (zh) | 一种基于git实现的多组件软件升级方法、装置及服务器 | |
CN105893075A (zh) | 应用程序的更新方法及装置 | |
CN102087615A (zh) | 消息队列中逻辑关联的消息的自动合并 | |
CN111866158B (zh) | 路由方法、装置、计算机设备和存储介质 | |
CN110225087A (zh) | 基于全局负载均衡的云存取方法、装置及存储介质 | |
CN111078481A (zh) | 获取配置检查清单的方法、装置、电子设备及存储介质 | |
CN107992315A (zh) | 一种应用程序自动升级方法及存储介质 | |
CN110716786B (zh) | 一种页面展示方法、系统及存储介质 | |
CN103677931A (zh) | 一种软件搬家的方法及装置 | |
CN109977677A (zh) | 漏洞信息收集方法、装置、设备及可读存储介质 | |
CN110955449B (zh) | 客户端的灰度发布方法及装置 | |
CN112671878A (zh) | 一种区块链的信息订阅方法、装置、服务器和存储介质 | |
CN109753767B (zh) | 基于区块链的软件分发及更新方法和装置、服务器、客户端 | |
CN111158777A (zh) | 组件调用方法、装置及计算机可读存储介质 | |
CN109697072A (zh) | 信息处理方法、装置及设备 | |
CN111061642B (zh) | 一种基于用户数据的全自动竞赛数据处理系统以及方法 | |
CN114237654A (zh) | 一种ota升级方法及系统 | |
CN113934405A (zh) | 插件处理方法、装置、设备、存储介质及计算机程序产品 | |
CN113852610A (zh) | 报文处理方法、装置、计算机设备和存储介质 | |
CN112817953A (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 |