CN115145620A - 在线服务动态更新方法及其装置、设备、介质、产品 - Google Patents
在线服务动态更新方法及其装置、设备、介质、产品 Download PDFInfo
- Publication number
- CN115145620A CN115145620A CN202210787545.6A CN202210787545A CN115145620A CN 115145620 A CN115145620 A CN 115145620A CN 202210787545 A CN202210787545 A CN 202210787545A CN 115145620 A CN115145620 A CN 115145620A
- Authority
- CN
- China
- Prior art keywords
- online service
- update
- file
- resource
- program resource
- 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
- G06F8/65—Updates
- G06F8/656—Updates while running
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/658—Incremental updates; Differential updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Business, Economics & Management (AREA)
- Finance (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- Databases & Information Systems (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Stored Programmes (AREA)
Abstract
本申请涉及在线服务动态更新方法及其装置、设备、介质、产品,所述方法包括:监听在运行的在线服务的程序资源配置信息的更新事件,确定发生更新的目标程序资源;编译所述目标程序资源的源文件,获得相应的字节码文件;启动资源分发线程,由资源分发线程将所述字节码文件分发至所述在线服务的多个预注册的实例实现相应实例的版本升级。本申请可以轻量的方式实现对在线服务分布广泛的多个实例的并发更新,提升在线服务的升级效率,适合部署于基于独立站的跨境电商平台的服务器中,用于为海量独立站中同一在线服务的相应实例进行更新,可节省跨境电商平台的后台维护成本。
Description
技术领域
本申请涉及电商服务技术领域,尤其涉及一种在线服务动态更新方法及其相应的装置、计算机设备、计算机可读存储介质,以及计算机程序产品。
背景技术
在线服务是互联网业务的体现形式,每个在线服务提供一个相对独立的功能,各个业务需求方可以根据其实际需要而配置相应的在线服务,以便使用相应的功能。例如,电商平台中商品广告服务相对应的在线服务,各个线上店铺均可将其配置到本店铺中,当用户进入线上店铺时,便可通过商品广告服务为用户推荐商品。
跨境电商平台是近几年兴起的电商平台类型,其通过为商家用户提供一系列的电商服务而构建起区别于传统电商平台的模式,一个显著的特点是每个商家用户的线上店铺会运行于独立站点中,各个独立站点的数据难以互联互通,因而具有分布广、独立性强的特点,所以,当跨境电商平台需要更新一个被各独立站广泛使用的在线服务时,其复杂度可想而知。
借鉴传输的软件升级方式,通常会将被升级的软件重新打包再供用户下载,以这种方式实现对软件的更新。但是这种方式如果应用到为独立站提供服务的场景中,其效率低下、更新速度慢、网络带宽占用大幅增长等弊端可想而知,有鉴于此,针对基于独立站的跨境电商平台这一特定应用场景下的在线服务更新,需要另行探索贴合实际场景的方式。
发明内容
本申请的目的在于解决上述问题而提供一种在线服务动态更新方法及其相应的装置、计算机设备、计算机可读存储介质、计算机程序产品、适应本申请的各个目的,采用如下技术方案:
一个方面,适应本申请的目的之一而提供一种在线服务动态更新方法,包括:
监听在运行的在线服务的程序资源配置信息的更新事件,确定发生更新的目标程序资源;
编译所述目标程序资源的源文件,获得相应的字节码文件;
启动资源分发线程,由资源分发线程将所述字节码文件分发至所述在线服务的多个预注册的实例实现相应实例的版本升级。
可选的,监听在运行的在线服务的程序资源配置信息的更新事件,确定发生更新的目标程序资源,包括:
响应程序资源配置信息的更新事件,确定相应的更新信息;
根据所述更新信息中的类名识别出该已有类是否被更新,若是则确定被更新的类作为目标程序资源;
当所述类名为新增类时,将其作为目标程序资源。
可选的,编译所述目标程序资源的源文件,获得相应的字节码文件,包括:
根据所述程序资源配置信息获取所述目标程序资源的源文件;
对所述源文件进行编译,生成相应的字节码文件;
向配置服务器发送指向所述字节码文件的更新通知消息。
可选的,启动资源分发线程,由资源分发线程将所述字节码文件分发至所述在线服务的多个预注册的实例实现相应实例的版本升级,包括:
由配置服务器响应指向所述字节码文件的更新通知消息而启动资源分发线程;
由所述资源分发线程将所述更新通知消息中的字节码文件广播分发至所述在线服务的多个预注册的实例相对应的更新接口;
由所述更新接口将所述字节码文件植入相应的实例的代码中实现版本升级。
可选的,所述在线服务的各个实例分别部署于电商平台不同独立站中。
可选的,监听在运行的在线服务的程序资源配置信息的更新事件之前,包括:
重新构造在线服务所引用的神经网络模型,使封装所述神经网络模型的类的源文件发生更新;
将所述神经网络模型重新训练至收敛状态,使所述源文件关联训练过程中获得的权重参数;
将封装所述神经网络模型的类的源文件添加到程序资源配置信息中,并标注其最新状态以触发所述的更新事件。
另一方面,适应本申请的目的之一而提供一种在线服务动态更新装置,包括:事件监听模块、编译执行模块,以及分发升级模块,其中,所述事件监听模块,用于监听在运行的在线服务的程序资源配置信息的更新事件,确定发生更新的目标程序资源;所述编码执行模块,用于编译所述目标程序资源的源文件,获得相应的字节码文件;所述分发升级模块,用于启动资源分发线程,由资源分发线程将所述字节码文件分发至所述在线服务的多个预注册的实例实现相应实例的版本升级。
可选的,所述事件监听模块,包括:事件响应单元,用于响应程序资源配置信息的更新事件,确定相应的更新信息;更新确定单元,用于根据所述更新信息中的类名识别出该已有类是否被更新,若是则确定被更新的类作为目标程序资源;新增确定单元,用于当所述类名为新增类时,将其作为目标程序资源。
可选的,所述编译执行模块,包括:源文件获取单元,用于根据所述程序资源配置信息获取所述目标程序资源的源文件;字节码转换单元,用于对所述源文件进行编译,生成相应的字节码文件;消息通知单元,用于向配置服务器发送指向所述字节码文件的更新通知消息。
可选的,所述分发升级模块,包括:线程启动单元,用于由配置服务器响应指向所述字节码文件的更新通知消息而启动资源分发线程;广播分发单元,用于由所述资源分发线程将所述更新通知消息中的字节码文件广播分发至所述在线服务的多个预注册的实例相对应的更新接口;升级迭代单元,用于由所述更新接口将所述字节码文件植入相应的实例的代码中实现版本升级。
可选的,所述在线服务的各个实例分别部署于电商平台不同独立站中。
可选的,先于所述事件监听模块,包括:模型重构模块,用于重新构造在线服务所引用的神经网络模型,使封装所述神经网络模型的类的源文件发生更新;训练关联模块,用于将所述神经网络模型重新训练至收敛状态,使所述源文件关联训练过程中获得的权重参数;配置更新模块,用于将封装所述神经网络模型的类的源文件添加到程序资源配置信息中,并标注其最新状态以触发所述的更新事件。
又一方面,适应本申请的目的之一而提供的一种计算机设备,包括中央处理器和存储器,所述中央处理器用于调用运行存储于所述存储器中的计算机程序以执行本申请所述的在线服务动态更新方法的步骤。
又一方面,适应本申请的另一目的而提供的一种计算机可读存储介质,其以计算机可读指令的形式存储有依据所述的在线服务动态更新方法所实现的计算机程序,该计算机程序被计算机调用运行时,执行该方法所包括的步骤。
又一方面,适应本申请的另一目的而提供的一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现本申请任意一种实施例中所述在线服务动态更新方法的步骤。
相对于现有技术,本申请通过独立监听在线服务的程序资源配置信息的更新事件,确定被更新的目标程序资源,然后针对目标程序资源独立编译获得其字节码文件,再借助资源分发线程将字节码文件分发至在线服务的各个实例中,实现对各个实例的更新升级,避免各个实例独立编译在线服务的源文件,避免每次更新占用大量的网络带宽,可以确保各个实例快速高效地得到更新,特别适合部署在基于独立站的跨境电商平台中,实现对海量独立站中相同在线服务对应的实例的并发更新。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请的在线服务动态更新方法的典型实施例的流程示意图。
图2为本申请实施例中确定目标程序资源的流程示意图。
图3为本申请实施例中根据程序资源配置信息进行字节码文件的编译并发送更新通知消息的流程示意图。
图4为本申请实施例中分发更新通知消息实现在线服务实例的版本升级的流程示意图。
图5为本申请实施例中触发在线服务的更新事件的流程示意图。
图6为本申请的在线服务动态更新装置的原理框图;
图7为本申请所采用的一种计算机设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本申请中所引用或可能引用到的神经网络模型,除非明文指定,既可部署于远程服务器且在客户端实施远程调用,也可部署于设备能力胜任的客户端直接调用,某些实施例中,当其运行于客户端时,其相应的智能可通过迁移学习来获得,以便降低对客户端硬件运行资源的要求,避免过度占用客户端硬件运行资源。
本申请即将揭示的各个实施例,除非明文指出彼此之间的相互排斥关系,否则,各个实施例所涉的相关技术特征可以交叉结合而灵活构造出新的实施例,只要这种结合不背离本申请的创造精神且可满足现有技术中的需求或解决现有技术中的某方面的不足即可。对此变通,本领域技术人员应当知晓。
本申请的一种在线服务动态更新方法,可被编程为计算机程序产品,部署于客户端或服务器中运行而实现,例如,本申请的示例性应用场景中,可以在电商平台的服务器中部署实现,藉此可以通过访问该计算机程序产品运行后开放的接口,通过图形用户界面与该计算机程序产品的进程进行人机交互而执行该方法。
请参阅图1,本申请的在线服务动态更新方法在其典型实施例中,包括如下步骤:
步骤S2100、监听在运行的在线服务的程序资源配置信息的更新事件,确定发生更新的目标程序资源;
示例性的应用场景中,电商平台的后台服务器负责对各个独立站所配置的在线服务进行及时更新。各个独立站可以通过向电商平台的配置中心申请配置某一在线服务,然后获取该在线服务的源文件,进行编译并运行,成为所述在线服务的一个相应的实例,完成所述在线服务在多个独立站的部署。
所述的在线服务,是指功能上相对独立的应用程序模块,各个在线服务可以根据其相应的程序资源配置信息进行配置其各种程序资源,所述程序资源包括程序代码和包括图片、音频、文本等在内的引用资源等,所述程序代码通常存储为源文件,其他引用资源也以其各自的格式存储为相应的文件。所述程序代码通常以类的形式进行封装,每个类的代码可以封装为一个相应的源文件。
当开发人员完成对一个在线服务的修改后,会产生相应的新的类的源文件或者,通过对旧有的类的代码进行修改而产生替换的类的源文件,各个类的代码中,也可能会引用相应的引用资源,因而,类的源文件实际上包含了类的源代码及其所引用的引用资源的整体封装信息。
通常,类的源文件需要经过编译才能成为字节码文件,以便成为计算机可以执行的代码,在线服务分发到各个独立站的实例,各自独立运行,当所述在线服务的源文件发生变动时,便需要对各个独立站的实例进行相应的升级。
在电商平台的配置中心相应的配置服务器中,预先设置监听线程,该监听线程用于实施对所述在线服务的各个源文件的修改状态的监听,当开发人员修改一个在线服务的源文件后,在线服务相应的软件工程会自动修改程序资源配置信息,使在线服务的程序资源配置信息产生相应的变化,从而触发一个相应的更新事件,所述更新事件必然包括产生变化的目标程序资源,一个实施例中,所述目标程序资源具体可以表示为一个类的源文件的引用地址,且关联提供其数字签名,所述引用地址用于获取目标程序资源所指向的源文件,所述数字签名用于校验源文件是否是未经篡改的对应文件。
一个实施例中,可以按照如下示例性的过程确定发生更新的目标程序资源,请参阅图2,该过程包括:
步骤S2110、响应程序资源配置信息的更新事件,确定相应的更新信息;
响应所述更新部件,该更新事件包含程序资源配置信息中,由于对在线服务修改而产生的类的源文件的引用地址,根据该引用地址,按照默认规则例如确定相路径下的与引用地址所指向的文件同名的指定后缀的文件,可以获得源文件相应的数字签名,所述源文件与其相应的数字签名便构成了更新事件相对应的更新信息。
步骤S2120、根据所述更新信息中的类名识别出该已有类是否被更新,若是则确定被更新的类作为目标程序资源;
所述引用地址所指向的源文件的文件名中包含源文件所封装的类的类名,先根据该类名在程序资源配置信息中的创建时间确定其是否为新增类,若不是新增类,则进一步从在线服务的源文件库中,提取相应的同名类的源文件,托按照预设的数字签名算法,计算获得同名类的源文件的数字签名,然后将在线服务同名类的源文件的数字签名与该更新事件对应的更新信息中的数字签名相比较,当两者相一致时,可确定在线服务的同名类并未发生更新,故无需做进一步的操作,否则,表示在线服务的同名类已经发生更新,故可确定该同名类是被更新的类,由此,可以将所述更新信息中引用地址所指向的源文件作为所述同名类的目标程序资源。
步骤S2130、当所述类名为新增类时,将其作为目标程序资源。
若更新信息中中的引用地址所指向的源文件的类名经前一步骤判断为新增类时,则直接将所述更新信息中引用地址所指向的源文件作为新增类相对应的目标程序资源即可。
步骤S2200、编译所述目标程序资源的源文件,获得相应的字节码文件;
为了使目标程序资源成为可执行代码,可采用开发所述在线服务所采用的语言相对应的编译器,对所述目标程序资源所指向的源文件进行编译,获得相应的字节码文件。
一个实施例中,可按照如下过程获取所述的字节码文件,请参阅图3,包括:
步骤S2210、根据所述程序资源配置信息获取所述目标程序资源的源文件;
本实施例中,所述程序资源配置信息中定义了目标程序资源的源文件及其引用资源,因而,除了根据目标程序资源相对应的引用地址可以获得其源文件外,还可获取其相应的图片、音频、视频、文本等各种引用资源,以方便在编译过程中引用。
步骤S2220、对所述源文件进行编译,生成相应的字节码文件;
进而,采用对应的编译器,按照编译器固有的业务逻辑,对所述源文件进行编码,获得其字节码文件。其中,由源文件所引入的部分引用资源,也可能以嵌入的方式被编译至所述字节码文件中,而另外部分引用资源,则源文件中可能仅包含了其映射地址。
步骤S2230、向配置服务器发送指向所述字节码文件的更新通知消息。
当完成了对所述目标程序资源的编译之后,便获得了目标程序资源相应的字节码文件,必要时,还可能包含其相应的引用资源,由此,表明已经完成对目标程序资源的编译,便可据此封装出一个更新通知消息,在其中包含所述字节码文件的下载地址,当然,当字节码文件存在对相应的引用资源的引用时,也会一并包含这些引用资源的下载地址。
最后,向电商平台的配置中心,也即配置服务器发送所述更新通知消息,实现对配置服务器的回调,将业务流程从监听线程传递至配置服务器,由与监听线程相解耦的配置服务器另行产生资源分发线程,进一步配合完成对各个独立站的在线服务实例的更新。
步骤S2300、启动资源分发线程,由资源分发线程将所述字节码文件分发至所述在线服务的多个预注册的实例实现相应实例的版本升级。
一个实施例中,当获得目标程序资源的字节码文件后,便可启动资源分发线程实施对各个独立性运行的在线服务实例的更新,通过向这些独立站分发这些字节码文件实现对相应实例的版本升级。
另一实施例中,启动资源分发线程,由资源分发线程将所述字节码文件分发至所述在线服务的多个预注册的实例实现相应实例的版本升级,请参阅图4,包括:
步骤S2310、由配置服务器响应指向所述字节码文件的更新通知消息而启动资源分发线程;
由配置服务器接受监听线程的回调,响应所述更新通知消息而启动资源分发线程,该资源分发线程可向各个独立站广播本申请前文示例的所述更新通知消息。
步骤S2320、由所述资源分发线程将所述更新通知消息中的字节码文件广播分发至所述在线服务的多个预注册的实例相对应的更新接口;
所述资源分发线程将所述更新通知消息广播到各个独立站后,各个独立站可以陆续确认升级,或者陆续响应于该更新通知消息自动确认升级,根据更新通知消息中的属于目标程序资源的字节码文件(必要时还包括其引用资源)的下载地址,向资源分发线程请求下载相应的文件,由资源分发线程根据各个独立站的请求,异步地将相应的文件推送到各个独立站。
所述独立站中可以预先配置利用目标程序资源对应的文件进行版本升级的更新接口,所述更新通知可以是在回调所述更新接口的过程中传递的给该更新接口的,由此,更新接口在所述更新通知消息的触发下,按照上述过程完成目标程序资源的下载,从而使资源分发线程完成对字节码文件的分发。
步骤S2330、由所述更新接口将所述字节码文件植入相应的实例的代码中实现版本升级。
在所述更新接口完成对目标程序资源相对应的文件的下载之后,便按照其预设的业务逻辑,自动执行将目标程序资源植入在线服务的进程中的操作,按照目标程序资源是否为已有类的同名类或新增类,相应将目标程序资源的字节码文件添加到在线服务实例或替换在线服务实例的同名类的字节码文件。
由此可见,监听线程与配置服务器的资源分发线程在实质上实现了解耦,提高了代码的复用性,同时,由监听线程负责编译,由资源分发线程负责对在线服务的各个实例进行更新,可以快速适应需求迭代,并且由于对在线服务的一次更新只需通过单次编译便可分发给各个独立站的实例,因而,节省了在线服务的软件工程的编译时间和***资源,大大提高了部署效率。此外,配置服务器可以集中实现了方便开发和维护的配置中心,允许开发人员通过其配置中心开发的可视化页面对其进行集中统一的管理,因而,也提升了开发端的实质收益。
根据以上实施例不难理解,本申请通过独立监听在线服务的程序资源配置信息的更新事件,确定被更新的目标程序资源,然后针对目标程序资源独立编译获得其字节码文件,再借助资源分发线程将字节码文件分发至在线服务的各个实例中,实现对各个实例的更新升级,避免各个实例独立编译在线服务的源文件,避免每次更新占用大量的网络带宽,可以确保各个实例快速高效地得到更新,特别适合部署在基于独立站的跨境电商平台中,实现对海量独立站中相同在线服务对应的实例的并发更新。
在本申请以上任意实施例的基础上,请参阅图5,监听在运行的在线服务的程序资源配置信息的更新事件之前,包括:
步骤S1100、重新构造在线服务所引用的神经网络模型,使封装所述神经网络模型的类的源文件发生更新;
本实施例中,所述在线服务主要用于实现基于人工智能的服务,其通过计算机编程的形式引用了一个或多个神经网络模型,例如图像分类模型、文本分类模型、图文多模态分类模型等,又如图像特征提取模型、文本特征提取模型、图文多模态特征提取模型等,所述神经网络模型的选型由本领域技术人员根据在线服务所要实现的具体功能按需设定,不影响本申请的创造精神的体现。
当在线服务中运行的一个神经网络模型需要被重构时,例如调整其中的全连接层的神经元数量,或者增加或减少其中的卷积层等等任意改变原有的神经网络模型的结构的操作均构成对神经网络模型的重构操作,一旦发生所述的重构操作,神经网络模型便需要重新训练,使其获得新的权重参数。
所述神经网络模型可以被编程实现为在线服务的一个类,因而可以定义于一个类相对应的源文件中。当所述神经网络模型被重构后,其类的源文件自然也相应发生更新,由此产生相应的新的源文件,一个实施例中,可以生成该源文件的数字签名以供校验。
步骤S1200、将所述神经网络模型重新训练至收敛状态,使所述源文件关联训练过程中获得的权重参数;
在重新定义所述神经网络模型之后,便需要采用预设的数据集,利用数据集中的训练样本及其相应的监督标签对所述神经网络模型重启训练,通过采用足量的训练样本对所述神经网络模型实施多次迭代训练,可通过不断梯度更新修正神经网络模型的权重参数,使神经网络模型的损失函数逐步收敛,最终达至收敛状态,便可完成对所述神经网络模型的训练。
在所述神经网络模型终止训练之后,其在训练过程中所获得的权重参数便被固化,因而,可以将其权重参数保存为特定格式的文件,由相应的类的源文件进行引用即可。
步骤S1300、将封装所述神经网络模型的类的源文件添加到程序资源配置信息中,并标注其最新状态以触发所述的更新事件。
最后,可以采用默认的格式对所述神经网络模型的类的源文件进行封装,将其封装为程序资源配置信息中的一条数据记录,然后存储到所述配置服务器的程序资源配置信息中,并且在其中标注其最新状态,表示相应的类的源文件已经发生更新,以便配置服务器可以根据该最新状态触发更新事件。在程序资源配置信息中添加所述的数据记录时,必要时可进一步关联其相应的数字签名以及其所引用的权重参数的对应文件等,使后续方便快速关联存取。
根据以上实施例可以看出,神经网络模型是升级较为频繁的应用需求之一,其在数据发生更新时往往需要重新训练,或者调整其神经网络结构进行更新,而电商平台的相关服务广泛应用神经网络模型用于实现各种不同的功能,当采用本申请的技术方案用于实现对基于神经网络模型的升级时,利用本申请的技术方案在前文所介绍的各种技术优势,可大大降低电商平台维护海量独立站的在线服务实例时所耗费的升级成本,使升级过程对终端用户基本无感知,从而提升整个电商平台的服务体验。
在本申请任意实施例的基础上,当每个独立站的更新接口需要向其上运行的在线服务的实例植入其所下载的目标程序资源时,可以先停止所述在线服务实例的运行,将相应的字节码文件及其他资源均存储到相应的区域并完成相应的配置后,再行启动所述的在线服务实例,由此可进一步确保升级过程的平滑性,使用户对在线服务实例访问的操作的异常率大大降低。
另一实施例中,更新接口可以直接修改在线服务实例的内存代码,借助Java的反射调用机制,直接在在线服务实例的进程中植入相应的字节码文件中的指令,实现版本升级。
在本申请任意实施例的基础上,在各个独立站与配置服务器之间,连接有多个分发服务器,每个分发服务器负责连接一部分所述的独立站集合,且作为第一分发服务器备份有另一第二分发服务器所连接的独立站集合的连接信息。当配置服务器的资源分发线程负责广播所述的更新通知消息时,其先将所述更新通知消息传递至各个分发服务器预设的转发接口,由所述转发接口将的所述更新通知消息进一步转发至其所在的分发服务器所连接的独立站集合中的每一个独立站的更新接口,再由各个独立站的更新接口完成所述的版本升级。
在本实施例中,所述第一分发服务器定期接收第二分发服务器发送心跳包,当第一分发服务器在预设时长范围内未能收到所述的心跳包时,第一分发服务器接管第二分发服务器所负责连接的独立站,从而,根据第一分发服务器事先备份的,属于第二分发服务器负责连接的独立站集合,根据所述独立站集合与该集合中的各个独立站重建连接,以便实现在第二分发服务器发生通信故障时第一分发服务器可以正常地代第二分发服务器向第二分发服务所负责连接的独立站中继转发所述更新通知消息。
由于所述更新通知消息所占网络带宽相对较小,因而,可以适用在这种多分发服务器联动的场景中,各个独立站集合则可部署在不同的公网或者不同地区的网络中,然后全球仅通过一个配置服务器,便可对接起全球分布的多个分发服务器,再由各个分发服务器将在线服务的更新通知消息分发给其通常是地域上最邻近、网络连接最高效的独立站集合,实现全球数据分发,并且即使其中个别分发服务器存在故障,其他分发服务器也可及时起到灾备作用,自动承担其所述更新通知消息的转发服务,确保全球范围内的独立站均能及时正常收到在线服务的更新通知消息,从而方便实现全球范围内的独立站的同期升级。
在本申请任意实施例的基础上,本申请可以包括如下步骤:
步骤S3100、响应终端设备触发的服务开发指令,向其推送在线服务开发页面,且在该开发页面中展示所述程序资源配置信息中的多个在线服务;
步骤S3200、响应所述终端设备针对所述多个在线服务中任意一个目标在线服务的开发请求指令,从所述程序资源配置信息中获得所述目标在线服务的源文件集合入口信息,将其推送至所述终端设备中;
步骤S330、响应所述终端设备针对所述目标在线服务提交的程序更新指令获取所述目标在线服务的被更新的类的源文件及其引用资源,生成所述源文件相对应的数字签名,在所述程序资源配置信息中创建各个类被更新相对应的数据记录,添加相应的标记以触发相应的更新事件。
根据以上实施例可知,本申请的配置服务器允许开发人员基于其提供的配置中心对在线服务进行集中开发和维护,对于电商平台而言,在线服务的集中开发和维护有助于提升平台开发的安全性和成本优势,也可配合本申请的以上实施例,为在线服务的及时升级提供了高效的途径。
请参阅图6,适应本申请的目的之一而提供一种在线服务动态更新装置,是对本申请的在线服务动态更新方法的功能化体现,该装置包括:事件监听模块2100、编译执行模块2200,以及分发升级模块2300,其中,所述事件监听模块2100,用于监听在运行的在线服务的程序资源配置信息的更新事件,确定发生更新的目标程序资源;所述编码执行模块,用于编译所述目标程序资源的源文件,获得相应的字节码文件;所述分发升级模块2300,用于启动资源分发线程,由资源分发线程将所述字节码文件分发至所述在线服务的多个预注册的实例实现相应实例的版本升级。
可选的,所述事件监听模块2100,包括:事件响应单元,用于响应程序资源配置信息的更新事件,确定相应的更新信息;更新确定单元,用于根据所述更新信息中的类名识别出该已有类是否被更新,若是则确定被更新的类作为目标程序资源;新增确定单元,用于当所述类名为新增类时,将其作为目标程序资源。
可选的,所述编译执行模块2200,包括:源文件获取单元,用于根据所述程序资源配置信息获取所述目标程序资源的源文件;字节码转换单元,用于对所述源文件进行编译,生成相应的字节码文件;消息通知单元,用于向配置服务器发送指向所述字节码文件的更新通知消息。
可选的,所述分发升级模块2300,包括:线程启动单元,用于由配置服务器响应指向所述字节码文件的更新通知消息而启动资源分发线程;广播分发单元,用于由所述资源分发线程将所述更新通知消息中的字节码文件广播分发至所述在线服务的多个预注册的实例相对应的更新接口;升级迭代单元,用于由所述更新接口将所述字节码文件植入相应的实例的代码中实现版本升级。
可选的,所述在线服务的各个实例分别部署于电商平台不同独立站中。
可选的,先于所述事件监听模块2100,包括:模型重构模块,用于重新构造在线服务所引用的神经网络模型,使封装所述神经网络模型的类的源文件发生更新;训练关联模块,用于将所述神经网络模型重新训练至收敛状态,使所述源文件关联训练过程中获得的权重参数;配置更新模块,用于将封装所述神经网络模型的类的源文件添加到程序资源配置信息中,并标注其最新状态以触发所述的更新事件。
为解决上述技术问题,本申请实施例还提供计算机设备。如图7所示,该计算机设备包括通过***总线连接的处理器、计算机可读存储介质、存储器和网络接口。其中,该计算机设备的计算机可读存储介质存储有操作***、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种商品搜索类目识别方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该计算机设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行本申请的在线服务动态更新方法。该计算机设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本实施方式中处理器用于执行图6中的各个模块及其子模块的具体功能,存储器存储有执行上述模块或子模块所需的程序代码和各类数据。网络接口用于向用户终端或服务器之间的数据传输。本实施方式中的存储器存储有本申请的在线服务动态更新装置中执行所有模块/子模块所需的程序代码及数据,服务器能够调用服务器的程序代码及数据执行所有子模块的功能。
本申请还提供一种存储有计算机可读指令的存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行本申请任一实施例的在线服务动态更新方法的步骤。
本申请还提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被一个或多个处理器执行时实现本申请任一实施例所述方法的步骤。
本领域普通技术人员可以理解实现本申请上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等计算机可读存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
综上所述,本申请可以轻量的方式实现对在线服务分布广泛的多个实例的并发更新,提升在线服务的升级效率,适合部署于基于独立站的跨境电商平台的服务器中,用于为海量独立站中同一在线服务的相应实例进行更新,可节省跨境电商平台的后台维护成本。
Claims (10)
1.一种在线服务动态更新方法,其特征在于,包括:
监听在运行的在线服务的程序资源配置信息的更新事件,确定发生更新的目标程序资源;
编译所述目标程序资源的源文件,获得相应的字节码文件;
启动资源分发线程,由资源分发线程将所述字节码文件分发至所述在线服务的多个预注册的实例实现相应实例的版本升级。
2.根据权利要求1所述的在线服务动态更新方法,其特征在于,监听在运行的在线服务的程序资源配置信息的更新事件,确定发生更新的目标程序资源,包括:
响应程序资源配置信息的更新事件,确定相应的更新信息;
根据所述更新信息中的类名识别出该已有类是否被更新,若是则确定被更新的类作为目标程序资源;
当所述类名为新增类时,将其作为目标程序资源。
3.根据权利要求1所述的在线服务动态更新方法,其特征在于,编译所述目标程序资源的源文件,获得相应的字节码文件,包括:
根据所述程序资源配置信息获取所述目标程序资源的源文件;
对所述源文件进行编译,生成相应的字节码文件;
向配置服务器发送指向所述字节码文件的更新通知消息。
4.根据权利要求3所述的在线服务动态更新方法,其特征在于,启动资源分发线程,由资源分发线程将所述字节码文件分发至所述在线服务的多个预注册的实例实现相应实例的版本升级,包括:
由配置服务器响应指向所述字节码文件的更新通知消息而启动资源分发线程;
由所述资源分发线程将所述更新通知消息中的字节码文件广播分发至所述在线服务的多个预注册的实例相对应的更新接口;
由所述更新接口将所述字节码文件植入相应的实例的代码中实现版本升级。
5.根据权利要求4所述的在线服务动态更新方法,其特征在于,所述在线服务的各个实例分别部署于电商平台不同独立站中。
6.根据权利要求1至5中任意一项所述的在线服务动态更新方法,其特征在于,监听在运行的在线服务的程序资源配置信息的更新事件之前,包括:
重新构造在线服务所引用的神经网络模型,使封装所述神经网络模型的类的源文件发生更新;
将所述神经网络模型重新训练至收敛状态,使所述源文件关联训练过程中获得的权重参数;
将封装所述神经网络模型的类的源文件添加到程序资源配置信息中,并标注其最新状态以触发所述的更新事件。
7.一种在线服务动态更新装置,其特征在于,包括:
事件监听模块,用于监听在运行的在线服务的程序资源配置信息的更新事件,确定发生更新的目标程序资源;
编码执行模块,用于编译所述目标程序资源的源文件,获得相应的字节码文件;
分发升级模块,用于启动资源分发线程,由资源分发线程将所述字节码文件分发至所述在线服务的多个预注册的实例实现相应实例的版本升级。
8.一种计算机设备,包括中央处理器和存储器,其特征在于,所述中央处理器用于调用运行存储于所述存储器中的计算机程序以执行如权利要求1至6中任意一项所述的方法的步骤。
9.一种计算机可读存储介质,其特征在于,其以计算机可读指令的形式存储有依据权利要求1至6中任意一项所述的方法所实现的计算机程序,该计算机程序被计算机调用运行时,执行相应的方法所包括的步骤。
10.一种计算机程序产品,其特征在于,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现权利要求1至6中任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210787545.6A CN115145620A (zh) | 2022-07-04 | 2022-07-04 | 在线服务动态更新方法及其装置、设备、介质、产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210787545.6A CN115145620A (zh) | 2022-07-04 | 2022-07-04 | 在线服务动态更新方法及其装置、设备、介质、产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115145620A true CN115145620A (zh) | 2022-10-04 |
Family
ID=83413143
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210787545.6A Pending CN115145620A (zh) | 2022-07-04 | 2022-07-04 | 在线服务动态更新方法及其装置、设备、介质、产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115145620A (zh) |
-
2022
- 2022-07-04 CN CN202210787545.6A patent/CN115145620A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111866191B (zh) | 消息事件的分发方法、分发平台、***及服务器 | |
CN112181439A (zh) | 一种微服务部署方法、装置、电子设备及可读存储介质 | |
US20200052982A1 (en) | In situ triggered function as a service within a service mesh | |
CN114077423A (zh) | 基于移动跨平台的机场app开发容器架构 | |
CN111897541A (zh) | 一种云环境下自动化部署资源的软件交互平台及方法 | |
WO2016150387A1 (zh) | 界面处理方法、装置及*** | |
CN112612452A (zh) | 一种api平台实现方法、装置、设备及存储介质 | |
CN111752587A (zh) | 小程序的批量处理方法、装置、电子设备以及可读存储介质 | |
WO2016150390A1 (zh) | 界面处理方法、装置及*** | |
CN111897551B (zh) | 一种云环境下快速克隆软件环境的平台及方法 | |
CN111683005B (zh) | 一种物联网智能网关设备及其构建方法 | |
CN115145620A (zh) | 在线服务动态更新方法及其装置、设备、介质、产品 | |
CN110221830B (zh) | 一种在PC上加载WebView的方法及*** | |
WO2023124657A1 (zh) | 微应用的运行方法、装置、设备、存储介质及程序产品 | |
CN116301730A (zh) | 一种基于SaaS平台的生成应用程序的方法及设备 | |
CN115811481A (zh) | 一种交互服务测试方法、装置、计算机设备及存储介质 | |
CN111651146B (zh) | 一种函数生成方法、装置、设备和介质 | |
WO2022099913A1 (zh) | 界面配置方法、装置、设备及介质 | |
CN112667491B (zh) | 虚拟机的功能测试方法及装置 | |
CN114422358A (zh) | Api网关配置更新方法及设备 | |
CN111026413B (zh) | 以需求为导向的复杂***“拉取”模式部署***及其方法 | |
CN110661852B (zh) | 云环境中的业务处理方法及装置 | |
CN114546434A (zh) | 一种应用更新方法、装置、电子设备及存储介质 | |
CN112597408A (zh) | 一种***融合方法、装置、设备和存储介质 | |
CN111782242B (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 |