CN113377381A - 小程序包的分发方法、装置、电子设备和介质 - Google Patents
小程序包的分发方法、装置、电子设备和介质 Download PDFInfo
- Publication number
- CN113377381A CN113377381A CN202110737804.XA CN202110737804A CN113377381A CN 113377381 A CN113377381 A CN 113377381A CN 202110737804 A CN202110737804 A CN 202110737804A CN 113377381 A CN113377381 A CN 113377381A
- Authority
- CN
- China
- Prior art keywords
- client
- target
- flow
- applet
- candidate
- 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
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000004590 computer program Methods 0.000 claims description 11
- 238000000605 extraction Methods 0.000 claims description 8
- 230000001419 dependent effect Effects 0.000 claims description 4
- 230000000694 effects Effects 0.000 abstract description 7
- 238000005516 engineering process Methods 0.000 abstract description 4
- 230000003044 adaptive effect Effects 0.000 abstract description 3
- 238000004422 calculation algorithm Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 101100264195 Caenorhabditis elegans app-1 gene Proteins 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- 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)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
Abstract
本公开提供了一种小程序包的分发方法、装置、电子设备和介质,涉及计算机技术领域,尤其涉及小程序技术、云计算及云服务技术领域。具体实现方案为:根据客户端发送的小程序加载请求,确定所述客户端的运行环境信息和客户端标识,并根据所述运行环境信息以及所述客户端标识,从候选小程序包中确定目标小程序包,并将所述目标小程序包发送给所述客户端。本公开实现了向客户端发送与客户端的运行环境信息相适应的小程序包的效果,提高了小程序包在客户端运行的稳定性和可靠性。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及小程序技术、云计算及云服务技术领域,特别涉及一种小程序包的分发方法、装置、电子设备和介质。
背景技术
通过宿主客户端提供运行环境来运行小程序的模式,在互联网业务中应用越来越广泛。小程序无需用户下载安装,而能够直接通过宿主客户端来打开小程序的页面,实现小程序的业务功能。
为了避免小程序版本升级产生一定的风险,目前对于小程序包的发布多是采用灰度发布的方式。
发明内容
本公开提供了一种用于向用户分发小程序包的方法、装置、电子设备和介质。
根据本公开的一方面,提供了一种小程序包的分发方法,包括:
根据客户端发送的小程序加载请求,确定所述客户端的运行环境信息和客户端标识;
根据所述运行环境信息以及所述客户端标识,从候选小程序包中确定目标小程序包,并将所述目标小程序包发送给所述客户端。
根据本公开的另一方面,提供了一种小程序包的分发装置,包括:
信息确定模块,用于根据客户端发送的小程序加载请求,确定所述客户端的运行环境信息和客户端标识;
目标小程序包确定模块,用于根据所述运行环境信息以及所述客户端标识,从候选小程序包中确定目标小程序包,并将所述目标小程序包发送给所述客户端。
根据本公开的另一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开中任一项所述的方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行本公开中任一项所述的方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据本公开中任一项所述的方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开实施例公开的一种小程序包的分发方法的流程图;
图2A是根据本公开实施例公开的一种小程序包的分发方法的流程图;
图2B是根据本公开实施例公开的一种候选流量层的示意图;
图3是根据本公开实施例公开的一种小程序包的分发装置的结构示意图;
图4是用来实现本公开实施例公开的小程序包的分发方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
申请人在研发过程中发现,现有的小程序包发布过程中,为了安全起见,大多采用灰度发布的方式进行发布,即除了主版本小程序包以外,还会发布至少一个灰度版本小程序包,从而可以根据用户对于灰度版本小程序包的反响,逐渐完善灰度版本小程序包,最终将灰度版本小程序包替代主版本小程序包进行正式发布。
当客户端想要调用某个小程序时,现有技术通常是采用先到先得的思想来分发小程序包,即先请求的客户端优先命中灰度版本小程序包,直至流量用完为止。然而现有的小程序包分发方法没有考虑客户端的运行环境信息,从而导致分发的小程序包在客户端中运行的稳定性和可靠性不足。
图1是根据本公开实施例公开的一种小程序包的分发方法的流程图,本实施例可以适用于根据客户端发送的小程序加载请求,向客户端分发小程序包的情况。本实施例方法可以由本公开实施例公开的小程序包的分发装置来执行,所述装置可采用软件和/或硬件实现,并可集成在任意的具有计算能力的电子设备上。
如图1所示,本实施例公开的小程序包的分发方法可以包括:
S101、根据客户端发送的小程序加载请求,确定所述客户端的运行环境信息和客户端标识。
其中,客户端为安装于智能设备中的软件,智能设备包括但不限于智能手机、智能手表、平板电脑、个人电脑或任意搭载有智能操作系统的设备,客户端可以为APP(Application,手机软件)客户端或者网页客户端等等,本实施例中的客户端即运行小程序的宿主客户端。客户端的运行环境信息表示客户端运行时关联的运行条件,其包括软件环境信息和硬件环境信息,软件环境信息即客户端运行时所需要的软件运行条件,包括但不限于操作系统、操作系统版本、数据库信息或客户端版本等等;硬件环境信息即客户端运行时所需要的硬件运行条件,包括但不限于处理器、内存、硬盘或显卡等等。客户端标识是客户端身份的辨识信息,其具有唯一性,即不同的客户端对应不同的客户端标识,客户端标识可以由相关人员预先人工分配,即为不同智能设备中的不同客户端分配唯一的客户端标识,还可以预先根据客户端所属智能设备的设备码、MAC地址或者IP地址等唯一信息,基于预设算法进行计算得到等。本实施例并不对客户端标识生成方式进行限定,凡是能够生成具有唯一性的客户端标识的方式,均在本实施例的保护范围中。
在一种实施方式中,用户在智能设备安装的客户端的界面中,点击某个想要访问的小程序的图标或预览界面,客户端响应用户的点击操作获取客户端的运行环境信息和客户端标识,以及确定用户点击的小程序的小程序标识,进而根据客户端的运行环境信息、客户端标识以及小程序标识生成小程序加载请求,并将小程序加载请求发送给服务端。服务端接收到小程序加载请求后,对小程序加载请求进行解析,并根据解析结果确定客户端的运行环境信息和客户端标识。进一步地,服务端还会对确定的客户端的运行环境信息和客户端标识进行参数有效性校验,若确定客户端的运行环境信息或客户端标识具有无效参数,则向客户端发送提示信息,以拒绝客户端的小程序加载请求。
通过根据客户端发送的小程序加载请求,确定客户端的运行环境信息和客户端标识,为后续从候选小程序包中确定目标小程序包,奠定了数据基础。
可选的,所述运行环境信息包括小程序基础库版本信息和/或客户端版本信息。
其中,考虑到小程序包的运行依赖于小程序基础库版本以及客户端版本,将小程序基础库版本信息和/或客户端版本信息作为运行环境信息。小程序基础库即小程序SDK(Software Development Kit,软件开发工具包),为小程序运行提供原生API(ApplicationProgramming Interface,应用程序接口),扩展小程序的功能丰富性。客户端版本信息即发送小程序加载请求的客户端的版本号,相应的,小程序基础库版本信息即发送小程序加载请求的客户端中安装的小程序基础库的版本号。不同版本的小程序包的运行依赖于不同版本的小程序基础库版本号以及客户端版本号。
通过将运行环境信息设置为小程序基础库版本信息和/或客户端版本信息,保证根据后续根据运行环境信息确定的目标小程序包,能够在该运行环境信息中正常运行,提高了小程序包在客户端运行的稳定性和可靠性。
S102、根据所述运行环境信息以及所述客户端标识,从候选小程序包中确定目标小程序包,并将所述目标小程序包发送给所述客户端。
其中,小程序包包含运行小程序所需的代码数据,一个小程序包中又包括框架包、宿主扩展包以及动态库等。
在一种实施方式中,预先根据候选小程序包运行依赖的运行环境信息,和候选小程序包所属小程序的小程序标识,对服务端中存储的候选小程序包进行分类,即基于小程序标识和运行环境信息两个维度对候选小程序包进行分类,换言之,所属相同小程序且运行依赖的运行环境相同的候选小程序包,被分为同一类候选小程序包。对于每一类候选小程序包,可根据其关联的小程序标识和运行环境信息生成标签信息,并对各类候选小程序包执行打标签的操作。
服务端对小程序加载请求进行解析,确定客户端的运行环境信息、客户端标识以及目标小程序标识,进而根据客户端的运行环境信息和目标小程序标识,与预先确定的各类候选小程序包的标签信息进行匹配,其中,匹配的方式可以为字符匹配,例如基于正则表达式匹配法、朴素模式匹配或KMP模式匹配法等字符匹配算法,将客户端的运行环境信息和目标小程序标识,与各类候选小程序包的标签信息进行字符匹配,从而确定目标类别的候选小程序包。
确定目标类别的候选小程序包后,根据客户端标识从目标类别的候选小程序包包含的至少一个候选小程序包中确定目标小程序包。
在一种实施方式中,首先根据目标类别候选小程序包关联的黑名单,确定客户端标识是否属于该黑名单中,若是则直接拒绝客户端的小程序加载请求;若否,则根据目标类别候选小程序包中各个候选小程序包对应的白名单,确定客户端标识所属的白名单,且将该白名单对应的候选小程序包作为目标小程序包。其中,相关人员可以根据实际业务需求来调整各个候选小程序包对应的白名单中的内容。
在另一种实施方式中,确定目标类别候选小程序包所对应的类别标识,并根据类别标识和客户端标识生成辅助标识,进而采用哈希算法对辅助标识进行哈希运算,得到客户端哈希值。根据预设的各个候选小程序包所对应的哈希值区间,确定客户端哈希值所属的哈希值区间,并将该哈希值区间对应的候选小程序包作为目标小程序包。其中,相关人员可以根据实际业务需求来调整各个候选小程序包所对应的哈希值区间的区间范围,从而使得各个候选小程序包可以由不同数量的客户端获取。
确定目标小程序包后,服务端将目标小程序包发送给客户端,以使得客户端对接收到的目标小程序包进行加载,从而在客户端中运行小程序,供用户进行内容访问。
本公开通过根据客户端发送的小程序加载请求,确定客户端的运行环境信息和客户端标识,并根据运行环境信息以及客户端标识,从候选小程序包中确定目标小程序包,并将目标小程序包发送给客户端,实现了向客户端发送与客户端的运行环境信息相适应的小程序包的效果,提高了小程序包在客户端运行的稳定性和可靠性。
…
图2A是根据本公开实施例公开的一种小程序包的分发方法的流程图,基于上述技术方案进一步优化与扩展,并可以与上述各个可选实施方式进行结合。
如图2A所示,本实施例公开的小程序包的分发方法可以包括:
S201、根据客户端发送的小程序加载请求,确定所述客户端的运行环境信息和客户端标识。
在一种实施方式中,若候选小程序包为灰度发布的小程序包,则S201还包括根据小程序加载请求确定目标小程序标识,并根据目标小程序标识确定该小程序是否有灰度发布的小程序包,若否,则直接向客户端发送正式版本的小程序包。
S202、根据所述客户端的运行环境信息,及候选流量层与运行环境信息之间的关联关系,从所述候选流量层中确定目标流量层。
其中,流量层是一种对客户端访问流量的集合表示,客户端访问流量是指对服务端中任一候选小程序包进行网络访问的客户端。在本实施例中,预先根据各候选小程序包运行依赖的运行环境信息,以及各小程序包所属小程序的小程序标识,为各候选小程序包划分流量层,生成至少一层候选流量层,即基于小程序标识和运行环境信息两个维度对候选小程序包进行流量分层,换言之,所属相同小程序且运行依赖的运行环境相同的候选小程序包,被分为同一候选流量层中。在本实施例中,不同候选流量层可以关联相同的小程序标识,但必须关联不同的运行环境信息,即候选流量层关联的运行环境信息具有唯一性。
图2B是根据本公开实施例公开的一种候选流量层的示意图,如图2B所示,候选流量层20包括候选小程序包23和候选小程序包24,其对应的小程序标识为App1,运行环境为环境1;候选流量层21包括候选小程序包25和候选小程序包26,其对应的小程序标识为App1,运行环境为环境2;候选流量层22包括候选小程序包27、候选小程序包28和候选小程序包29,其对应的小程序标识为App1,运行环境为环境3。即图2B中的各候选小程序包所属于同一小程序“APP1”,但候选小程序包23和候选小程序包24依赖的运行环境为环境1;候选小程序包25和候选小程序包26依赖的运行环境为环境2;候选小程序包27、候选小程序包28和候选小程序包29依赖的运行环境为环境3。
在一种实施方式中,服务端根据小程序加载请求中包含的小程序标识,确定该小程序标识关联的候选流量层,并根据客户端的运行环境信息,与各候选流量层与运行环境信息之间的关联关系,将与客户端的运行环境信息相关联的候选流量层作为目标流量层。例如,假设客户端的运行环境信息为“小程序基础库版本1.1.3;客户端版本2.0.1”,若运行环境信息“小程序基础库版本1.1.3;客户端版本2.0.1”关联的候选流量层为候选流量层4,则将候选流量层4作为目标流量层。
可选的,若候选小程序包为灰度发布的小程序包,则S202之前,还包括:
根据客户端发送的小程序加载请求,确定客户端基础信息,并根据预设的灰度校验规则,对所述客户端基础信息进行校验。
在一种实施方式中,相关人员预先设置有灰度校验规则并写入到服务端的规则表中。当服务端执行确定目标流量层之前,首先要根据灰度校验规则对客户端基础信息进行校验,只有当客户端基础信息满足灰度校验规则的各校验条件时,才会执行确定目标流量层的步骤,否则直接反馈给客户端正式版本的小程序包。灰度校验规则包括但不限于以下校验条件:操作系统、操作系统版本、客户端渠道号、厂商、设备机型、实验ID、用户IP以及支持的操作符等等。
S203、根据所述目标流量层的流量层标识和所述客户端标识,从所述目标流量层关联的候选小程序包中确定目标小程序包;其中,所述目标流量层关联的候选小程序包的运行依赖于所述目标流量层关联的运行环境信息。
其中,流量层标识是各候选流量层的唯一性标识,在本实施中流量层标识可以通过将候选流量层关联的小程序标识和运行环境信息进行字符拼接得到。
在一种实施方式中,根据目标流量层的流量层标识和客户端标识,计算客户端哈希值,并根据目标流量层中各候选小程序包对应的哈希值区间,从候选小程序包中确定目标小程序包。
可选的,S203包括以下步骤A和B:
A、根据所述流量层标识和所述客户端标识,确定所述客户端的流量值。
在一种实施方式中,将流量层标识和客户端标识进行字符拼接,并根据字符拼接结果的哈希值,确定客户端的流量值。
可选的,步骤A包括以下步骤A11和A12:
A11、根据所述流量层标识和所述客户端标识,确定所述客户端的客户端哈希值。
在一种实施方式中,将流量层标识和客户端标识进行字符拼接得到拼接字符,并采用预设的哈希算法对拼接字符进行哈希运算,得到客户端的客户端哈希值。其中,预设的哈希算法包括但不限于CRC32算法、MD5算法、SHA256算法等等。
A12、根据所述客户端哈希值以及所述目标流量层的流量区间范围值,确定所述客户端的流量值。
其中,目标流量层的流量区间范围值是预先设定得到的,可选的将各候选流量层的流量区间范围值均设置为[0,100],即流量区间下限值为0,流量区间上限值为100。
在一种实施方式中,根据客户端哈希值以及流量区间范围值的上限值,计算得到客户端的流量值。
通过根据流量层标识和客户端标识,确定客户端的客户端哈希值,并根据客户端哈希值以及目标流量层的流量区间范围值,确定客户端的流量值,实现了确定客户端所对应的流量值的效果,将客户端转换成对应的流量值,为后续根据流量值确定目标小程序包奠定了数据基础。
可选的,步骤A12包括:
将所述客户端哈希值与所述流量区间范围值的上限值进行取模,并将取模结果作为所述客户端的流量值。
示例性的,假设流量区间范围值的上限值为100,客户端哈希值为550,则客户端的流量值为[550/100]=5,其中“[]”为取模运算的计算符号。
通过将客户端哈希值与流量区间范围值的上限值进行取模,并将取模结果作为客户端的流量值,从而提供了一种计算客户端流量值的具体实现方式,为后续根据客户端流量值确定目标小程序包,奠定了数据基础。
B、根据所述客户端的流量值、所述目标流量层的流量区间、以及所述目标流量层的流量区间与候选小程序包的对应关系,从所述目标流量层关联的候选小程序包中确定目标小程序包。
其中,目标流量层中包括至少一个候选小程序包,且每个候选小程序包对应一个流量区间。相关人员可以通过调整各流量区间的区间范围,来控制不同的客户端流量访问不同的候选小程序包。例如,假设目标流量层包括候选小程序包A、候选小程序包B、候选小程序包C和候选小程序包D,候选小程序包A对应的流量区间范围为[0,20],候选小程序包A对应的流量区间范围为(20,50],候选小程序包C对应的流量区间范围为(50,80],候选小程序包D对应的流量区间范围为(80,100],则对应各候选小程序包客户端流量比例为2:3:3:2,即20%客户端可访问候选小程序包A,30%客户端可访问候选小程序包B,30%客户端可访问候选小程序包C,20%客户端可访问候选小程序包D。相关人员可根据需求对任一流量区间进行放量,例如将候选小程序包A对应的流量区间范围放量到[0,50],以使得50%客户端可访问放量后的候选小程序包A。同时,还会相应调整候选小程序包B、候选小程序包C和候选小程序包D分别对应的流量区间,以保证流量区间范围不超过目标流量层流量区间的上限值100。
在一种实施方式中,将客户端的流量值与目标流量层的流量区间进行匹配,根据匹配结果以及目标流量层的流量区间与候选小程序包的对应关系,从目标流量层关联的候选小程序包中确定目标小程序包。
通过根据流量层标识和客户端标识,确定客户端的流量值,并根据客户端的流量值、目标流量层的流量区间、以及目标流量层的流量区间与候选小程序包的对应关系,从目标流量层关联的候选小程序包中确定目标小程序包,实现了通过计算客户端的流量值并根据流量值在流量区间的落点,来确定目标小程序包的效果,满足了基于流量区间进行小程序包比例分发的需求。
可选的,步骤B包括:
确定所述流量值所属的所述目标流量层的目标流量区间;根据所述目标流量层的流量区间与候选小程序包的对应关系,将所述目标流量区间对应的候选小程序包作为所述目标小程序包。
示例性的,假设客户端A的流量值为36,目标流量层包括候选小程序包A、候选小程序包B、候选小程序包C和候选小程序包D,候选小程序包A对应的流量区间范围为[0,20],候选小程序包A对应的流量区间范围为(20,50],候选小程序包C对应的流量区间范围为(50,80],候选小程序包D对应的流量区间范围为(80,100],由于流量值36所属流量区间范围为(20,50],则将流量区间范围(20,50]对应的候选小程序包A作为目标小程序包。
通过确定流量值所属的目标流量层的目标流量区间,并根据目标流量层的流量区间与候选小程序包的对应关系,将目标流量区间对应的候选小程序包作为目标小程序包,实现了根据客户端流量值确定目标小程序包的效果。
S204、将所述目标小程序包发送给所述客户端。
本公开通过根据客户端的运行环境信息,及候选流量层与运行环境信息之间的关联关系,从候选流量层中确定目标流量层,并根据目标流量层的流量层标识和客户端标识,从目标流量层关联的候选小程序包中确定目标小程序包;其中,目标流量层关联的候选小程序包的运行依赖于目标流量层关联的运行环境信息,实现了从与客户端的运行环境信息相匹配的目标流量层的候选小程序包中确定目标小程序包的效果,保证向客户端发送的小程序包与客户端的运行环境信息相适应,提高了小程序包在客户端运行的稳定性和可靠性;并且,由于本实施例中是基于运行环境信息对候选流量层分层的,因此可以保证不同运行环境信息的候选小程序包之间不会出现流量冲突的问题,保证各种运行环境信息对应的候选小程序包的流量安全和正确。
图3是根据本公开实施例公开的一种小程序包的分发装置的结构示意图,可以适用于根据客户端发送的小程序加载请求,向客户端分发小程序包的情况。本实施例装置可采用软件和/或硬件实现,并可集成在任意的具有计算能力的电子设备上。
如图3所示,本实施例公开的小程序包的分发装置30可以包括信息确定模块31和目标小程序包确定模块32,其中:
信息确定模块31,用于根据客户端发送的小程序加载请求,确定所述客户端的运行环境信息和客户端标识;
目标小程序包确定模块32,用于根据所述运行环境信息以及所述客户端标识,从候选小程序包中确定目标小程序包,并将所述目标小程序包发送给所述客户端。
可选的,所述运行环境信息包括小程序基础库版本信息和/或客户端版本信息。
可选的,所述目标小程序包确定模块31,具体用于:
根据所述客户端的运行环境信息,及候选流量层与运行环境信息之间的关联关系,从所述候选流量层中确定目标流量层;
根据所述目标流量层的流量层标识和所述客户端标识,从所述目标流量层关联的候选小程序包中确定目标小程序包;其中,所述目标流量层关联的候选小程序包的运行依赖于所述目标流量层关联的运行环境信息。
可选的,所述目标小程序包确定模块31,具体还用于:
根据所述流量层标识和所述客户端标识,确定所述客户端的流量值;
根据所述客户端的流量值、所述目标流量层的流量区间、以及所述目标流量层的流量区间与候选小程序包的对应关系,从所述目标流量层关联的候选小程序包中确定目标小程序包。
可选的,所述目标小程序包确定模块31,具体还用于:
根据所述流量层标识和所述客户端标识,确定所述客户端的客户端哈希值;
根据所述客户端哈希值以及所述目标流量层的流量区间范围值,确定所述客户端的流量值。
可选的,所述目标小程序包确定模块31,具体还用于:
将所述客户端哈希值与所述流量区间范围值的上限值进行取模,并将取模结果作为所述客户端的流量值。
可选的,所述目标小程序包确定模块31,具体还用于:
确定所述流量值所属的所述目标流量层的目标流量区间;
根据所述目标流量层的流量区间与候选小程序包的对应关系,将所述目标流量区间对应的候选小程序包作为所述目标小程序包。
本公开实施例所公开的小程序包的分发装置30可执行本公开实施例所公开的小程序包的分发方法,具备执行方法相应的功能模块和有益效果。本实施例中未详尽描述的内容可以参考本公开任意方法实施例中的描述。
…
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图4示出了可以用来实施本公开的实施例的示例电子设备400的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图4所示,设备400包括计算单元401,其可以根据存储在只读存储器(ROM)402中的计算机程序或者从存储单元408加载到随机访问存储器(RAM)403中的计算机程序,来执行各种适当的动作和处理。在RAM 403中,还可存储设备400操作所需的各种程序和数据。计算单元401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
设备400中的多个部件连接至I/O接口405,包括:输入单元406,例如键盘、鼠标等;输出单元407,例如各种类型的显示器、扬声器等;存储单元408,例如磁盘、光盘等;以及通信单元409,例如网卡、调制解调器、无线通信收发机等。通信单元409允许设备400通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元401可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元401的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元401执行上文所描述的各个方法和处理,例如小程序包的分发方法。例如,在一些实施例中,小程序包的分发方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元408。在一些实施例中,计算机程序的部分或者全部可以经由ROM 402和/或通信单元409而被载入和/或安装到设备400上。当计算机程序加载到RAM 403并由计算单元401执行时,可以执行上文描述的小程序包的分发方法的一个或多个步骤。备选地,在其他实施例中,计算单元401可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行小程序包的分发方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (17)
1.一种小程序包的分发方法,包括:
根据客户端发送的小程序加载请求,确定所述客户端的运行环境信息和客户端标识;
根据所述运行环境信息以及所述客户端标识,从候选小程序包中确定目标小程序包,并将所述目标小程序包发送给所述客户端。
2.根据权利要求1所述的方法,其中,所述运行环境信息包括小程序基础库版本信息和/或客户端版本信息。
3.根据权利要求1所述的方法,其中,所述根据所述运行环境信息以及所述客户端标识,从候选小程序包中确定目标小程序包,包括:
根据所述客户端的运行环境信息,及候选流量层与运行环境信息之间的关联关系,从所述候选流量层中确定目标流量层;
根据所述目标流量层的流量层标识和所述客户端标识,从所述目标流量层关联的候选小程序包中确定目标小程序包;其中,所述目标流量层关联的候选小程序包的运行依赖于所述目标流量层关联的运行环境信息。
4.根据权利要求3所述的方法,其中,所述根据所述目标流量层的流量层标识和所述客户端标识,从所述目标流量层关联的候选小程序包中确定目标小程序包,包括:
根据所述流量层标识和所述客户端标识,确定所述客户端的流量值;
根据所述客户端的流量值、所述目标流量层的流量区间、以及所述目标流量层的流量区间与候选小程序包的对应关系,从所述目标流量层关联的候选小程序包中确定目标小程序包。
5.根据权利要求4所述的方法,其中,所述根据所述流量层标识和所述客户端标识,确定所述客户端的流量值,包括:
根据所述流量层标识和所述客户端标识,确定所述客户端的客户端哈希值;
根据所述客户端哈希值以及所述目标流量层的流量区间范围值,确定所述客户端的流量值。
6.根据权利要求5所述的方法,其中,所述根据所述客户端哈希值以及所述目标流量层的流量区间范围值,确定所述客户端的流量值,包括:
将所述客户端哈希值与所述流量区间范围值的上限值进行取模,并将取模结果作为所述客户端的流量值。
7.根据权利要求4所述的方法,其中,所述根据所述客户端的流量值、所述目标流量层的流量区间、以及所述目标流量层的流量区间与候选小程序包的对应关系,从所述目标流量层关联的候选小程序包中确定目标小程序包,包括:
确定所述流量值所属的所述目标流量层的目标流量区间;
根据所述目标流量层的流量区间与候选小程序包的对应关系,将所述目标流量区间对应的候选小程序包作为所述目标小程序包。
8.一种小程序包的分发装置,包括:
信息确定模块,用于根据客户端发送的小程序加载请求,确定所述客户端的运行环境信息和客户端标识;
目标小程序包确定模块,用于根据所述运行环境信息以及所述客户端标识,从候选小程序包中确定目标小程序包,并将所述目标小程序包发送给所述客户端。
9.根据权利要求8所述的装置,其中,所述运行环境信息包括小程序基础库版本信息和/或客户端版本信息。
10.根据权利要求8所述的装置,其中,所述目标小程序包确定模块,具体用于:
根据所述客户端的运行环境信息,及候选流量层与运行环境信息之间的关联关系,从所述候选流量层中确定目标流量层;
根据所述目标流量层的流量层标识和所述客户端标识,从所述目标流量层关联的候选小程序包中确定目标小程序包;其中,所述目标流量层关联的候选小程序包的运行依赖于所述目标流量层关联的运行环境信息。
11.根据权利要求10所述的装置,其中,所述目标小程序包确定模块,具体还用于:
根据所述流量层标识和所述客户端标识,确定所述客户端的流量值;
根据所述客户端的流量值、所述目标流量层的流量区间、以及所述目标流量层的流量区间与候选小程序包的对应关系,从所述目标流量层关联的候选小程序包中确定目标小程序包。
12.根据权利要求11所述的装置,其中,所述目标小程序包确定模块,具体还用于:
根据所述流量层标识和所述客户端标识,确定所述客户端的客户端哈希值;
根据所述客户端哈希值以及所述目标流量层的流量区间范围值,确定所述客户端的流量值。
13.根据权利要求12所述的装置,其中,所述目标小程序包确定模块,具体还用于:
将所述客户端哈希值与所述流量区间范围值的上限值进行取模,并将取模结果作为所述客户端的流量值。
14.根据权利要求11所述的装置,其中,所述目标小程序包确定模块,具体还用于:
确定所述流量值所属的所述目标流量层的目标流量区间;
根据所述目标流量层的流量区间与候选小程序包的对应关系,将所述目标流量区间对应的候选小程序包作为所述目标小程序包。
15.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的方法。
16.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-7中任一项所述的方法。
17.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110737804.XA CN113377381B (zh) | 2021-06-30 | 2021-06-30 | 小程序包的分发方法、装置、电子设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110737804.XA CN113377381B (zh) | 2021-06-30 | 2021-06-30 | 小程序包的分发方法、装置、电子设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113377381A true CN113377381A (zh) | 2021-09-10 |
CN113377381B CN113377381B (zh) | 2023-11-14 |
Family
ID=77580416
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110737804.XA Active CN113377381B (zh) | 2021-06-30 | 2021-06-30 | 小程序包的分发方法、装置、电子设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113377381B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114398131A (zh) * | 2022-01-10 | 2022-04-26 | 北京百度网讯科技有限公司 | 信息展示方法、装置、设备、介质及程序产品 |
CN115296949A (zh) * | 2022-06-28 | 2022-11-04 | 青岛海尔科技有限公司 | 智能家电设备远程控制方法、装置和系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107920112A (zh) * | 2017-11-01 | 2018-04-17 | 重庆金融资产交易所有限责任公司 | 支持灰度模式的配置文件推送方法、中心服务器及存储介质 |
US10356050B1 (en) * | 2016-09-20 | 2019-07-16 | Amazon Technologies, Inc. | Mitigation of data leakage in HTTP headers |
US20190278580A1 (en) * | 2018-03-09 | 2019-09-12 | International Business Machines Corporation | Distribution of a software upgrade via a network |
CN111090452A (zh) * | 2019-11-11 | 2020-05-01 | 福建天泉教育科技有限公司 | 服务环境的切换方法及计算机可读存储介质 |
WO2020181684A1 (zh) * | 2019-03-12 | 2020-09-17 | 平安科技(深圳)有限公司 | 管理灰度发布的方法、系统、设备及存储介质 |
CN111752843A (zh) * | 2020-06-29 | 2020-10-09 | 百度在线网络技术(北京)有限公司 | 用于确定影响面的方法、装置、电子设备及可读存储介质 |
CN112433788A (zh) * | 2020-11-23 | 2021-03-02 | 百度在线网络技术(北京)有限公司 | 小程序运行方法、装置、电子设备和存储介质 |
-
2021
- 2021-06-30 CN CN202110737804.XA patent/CN113377381B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10356050B1 (en) * | 2016-09-20 | 2019-07-16 | Amazon Technologies, Inc. | Mitigation of data leakage in HTTP headers |
CN107920112A (zh) * | 2017-11-01 | 2018-04-17 | 重庆金融资产交易所有限责任公司 | 支持灰度模式的配置文件推送方法、中心服务器及存储介质 |
US20190278580A1 (en) * | 2018-03-09 | 2019-09-12 | International Business Machines Corporation | Distribution of a software upgrade via a network |
WO2020181684A1 (zh) * | 2019-03-12 | 2020-09-17 | 平安科技(深圳)有限公司 | 管理灰度发布的方法、系统、设备及存储介质 |
CN111090452A (zh) * | 2019-11-11 | 2020-05-01 | 福建天泉教育科技有限公司 | 服务环境的切换方法及计算机可读存储介质 |
CN111752843A (zh) * | 2020-06-29 | 2020-10-09 | 百度在线网络技术(北京)有限公司 | 用于确定影响面的方法、装置、电子设备及可读存储介质 |
CN112433788A (zh) * | 2020-11-23 | 2021-03-02 | 百度在线网络技术(北京)有限公司 | 小程序运行方法、装置、电子设备和存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114398131A (zh) * | 2022-01-10 | 2022-04-26 | 北京百度网讯科技有限公司 | 信息展示方法、装置、设备、介质及程序产品 |
CN114398131B (zh) * | 2022-01-10 | 2024-05-31 | 北京百度网讯科技有限公司 | 信息展示方法、装置、设备、介质及程序产品 |
CN115296949A (zh) * | 2022-06-28 | 2022-11-04 | 青岛海尔科技有限公司 | 智能家电设备远程控制方法、装置和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113377381B (zh) | 2023-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113377381B (zh) | 小程序包的分发方法、装置、电子设备和介质 | |
CN113312072A (zh) | 配置文件更新方法及装置、电子设备和介质 | |
CN114389969A (zh) | 客户端的测试方法、装置、电子设备和存储介质 | |
CN114095567A (zh) | 数据访问请求的处理方法、装置、计算机设备及介质 | |
CN113220367A (zh) | 小程序的运行方法、装置、电子设备及存储介质 | |
CN113377614A (zh) | 调用链信息的生成方法、装置、电子设备及存储介质 | |
CN113766487A (zh) | 云手机信息获取方法、装置、设备和介质 | |
CN114371863A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN117520195A (zh) | 测试接口的方法、装置、设备、存储介质及程序产品 | |
CN114329164A (zh) | 用于处理数据的方法、装置、设备、介质和产品 | |
CN114637672A (zh) | 自动化数据测试方法、装置、计算机设备及存储介质 | |
CN113935069A (zh) | 一种基于区块链的数据验证方法、装置、设备及存储介质 | |
CN113590352A (zh) | 一种数据调用方法、装置、设备及可读存储介质 | |
CN112989250A (zh) | 一种Web服务响应方法、装置及电子设备 | |
CN112965836A (zh) | 服务控制方法、装置、电子设备及可读存储介质 | |
CN116738470B (zh) | 一种用户身份的关联方法、装置、电子设备及存储介质 | |
CN113595870B (zh) | 推送消息的处理方法、装置、电子设备及存储介质 | |
CN114461502B (zh) | 模型的监控方法和装置 | |
CN116506165A (zh) | 云手机识别的方法、装置、电子设备与可读存储介质 | |
CN114610511A (zh) | 一种输入校验方法、装置、电子设备及存储介质 | |
CN114281436A (zh) | 小程序通讯方法、装置、设备和存储介质 | |
CN115080111A (zh) | 目标应用的流程化管理方法、装置、设备及存储介质 | |
CN116010744A (zh) | 页面数据处理方法、装置、电子设备及可读存储介质 | |
CN114301975A (zh) | 应用内推送信息的处理方法、装置、设备及存储介质 | |
CN116339774A (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 |