CN114924768A - 应用程序的更新方法、装置、系统及电子设备 - Google Patents
应用程序的更新方法、装置、系统及电子设备 Download PDFInfo
- Publication number
- CN114924768A CN114924768A CN202210529849.2A CN202210529849A CN114924768A CN 114924768 A CN114924768 A CN 114924768A CN 202210529849 A CN202210529849 A CN 202210529849A CN 114924768 A CN114924768 A CN 114924768A
- Authority
- CN
- China
- Prior art keywords
- language
- container
- target
- application program
- text
- 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
- 238000000034 method Methods 0.000 title claims abstract description 202
- 230000008859 change Effects 0.000 claims abstract description 167
- 230000008569 process Effects 0.000 claims abstract description 116
- 230000015654 memory Effects 0.000 claims description 71
- 238000001514 detection method Methods 0.000 claims description 17
- 230000006870 function Effects 0.000 claims description 8
- 230000002159 abnormal effect Effects 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 5
- 238000007726 management method Methods 0.000 description 83
- 238000010586 diagram Methods 0.000 description 20
- 238000002955 isolation Methods 0.000 description 18
- 238000012545 processing Methods 0.000 description 10
- 238000011161 development Methods 0.000 description 9
- 230000008878 coupling Effects 0.000 description 7
- 238000010168 coupling process Methods 0.000 description 7
- 238000005859 coupling reaction Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 238000013467 fragmentation Methods 0.000 description 3
- 238000006062 fragmentation reaction Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 238000010295 mobile communication Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000007474 system interaction Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000012546 transfer Methods 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
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种应用程序的更新方法、装置、系统及电子设备。该方法应用于服务器中,服务器包括应用容器和服务网格容器,应用容器设置有目标应用程序的程序代码,服务网格容器设置有服务进程,服务进程从语言内容管理系统中获取文本语言,该方法包括:获取客户端发送的语言变更指令,以对目标应用程序中的文本进行语言变更;从服务网格容器中获取与语言变更指令对应的目标语言,目标语言为服务进程从语言内容管理系统中获取到的,并存储在服务网格容器中的文本语言;基于目标语言对目标应用程序中的文本进行语言变更,得到更新后的目标应用程序。本申请解决了现有技术中在对应用程序的文本语言进行更新时所存在的应用更新成本高的技术问题。
Description
技术领域
本申请涉及应用管理领域,具体而言,涉及一种应用程序的更新方法、装置、系统及电子设备。
背景技术
多语言内容管理在国际化的应用中使用范围很广,现有的应用产品中可基于语言内容管理系统来实现对应用产品中的语言的管理,其中,现有的语言内容管理系统通过集中化的系统进行应用产品中文本的统一存储,并提供对应文本的翻译能力,翻译后的文本再同步到应用中使用,以满足不同用户对语言的需求。
然而,现有技术中,在对文本数据包进行分发以及对变更文本的同步的过程中,在传统的微服务的开发模式下,功能的升级变更都需要接入方投入改造,同时服务的耦合也给应用带来其他维护的问题。例如,现有技术中需要接入方自行对接应用程序编程接口,并设计对应的缓存以及容灾方案,从而增加了应用更新的成本。又例如,现有技术还需要对不同开发语言提供不同的客户端版本,版本碎片化升级的迭代成本高,而且,与应用容器之间存在耦合,在进行文本同步期间容易造成服务的无用内存空间占用过多的问题。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种应用程序的更新方法、装置、系统及电子设备,以至少解决现有技术中在对应用程序的文本语言进行更新时所存在的应用更新成本高的技术问题。
根据本申请实施例的一个方面,提供了一种应用程序的更新方法,应用于服务器中,服务器至少包括应用容器和服务网格容器,应用容器中设置有目标应用程序所对应的程序代码,服务网格容器中设置有服务进程,服务进程用于从语言内容管理系统中获取文本语言,该方法包括:获取客户端发送的语言变更指令,其中,语言变更指令用于对目标应用程序中的文本进行语言变更;从服务网格容器中获取与语言变更指令所对应的目标语言,其中,目标语言为服务进程从语言内容管理系统中获取到的,并存储在服务网格容器中的文本语言;基于目标语言对应用容器中的目标应用程序中的文本进行语言变更,得到更新后的目标应用程序。
根据本申请实施例的另一方面,还提供了一种应用程序的更新方法,包括:响应对目标应用程序的文本进行语言变更的语言变更指令;向服务器发送语言变更指令,并获取服务器基于语言变更指令所返回的目标语言,其中,服务器至少包括应用容器和服务网格容器,应用容器中设置有目标应用程序所对应的程序代码,服务网格容器中设置有服务进程,服务进程用于基于语言变更指令从语言内容管理系统中获取目标语言;展示更新后的目标应用程序,其中,更新后的目标应用程序为加载目标语言后的目标应用程序。
根据本申请实施例的另一方面,还提供了一种应用程序的更新方法,包括:在图形用户界面上显示目标应用程序,其中,目标应用程序的文本所对应的语言为第一语言;在图形用户界面上显示目标应用程序,其中,目标应用程序的文本所对应的语言为第一语言;在图形用户界面上显示语言变更后的目标应用程序,其中,语言变更后的目标应用程序所对应的语言为第二语言。
根据本申请实施例的另一方面,还提供了一种应用程序的更新装置,应用于服务器中,服务器至少包括应用容器和服务网格容器,应用容器中设置有目标应用程序所对应的程序代码,服务网格容器中设置有服务进程,服务进程用于从语言内容管理系统中获取文本语言,该装置包括:第一获取模块,用于获取客户端发送的语言变更指令,其中,语言变更指令用于对目标应用程序中的文本进行语言变更;第二获取模块,用于从服务网格容器中获取与语言变更指令所对应的目标语言,其中,目标语言为服务进程从语言内容管理系统中获取到的,并存储在服务网格容器中的文本语言;更新模块,用于基于目标语言对应用容器中的目标应用程序中的文本进行语言变更,得到更新后的应用。
根据本申请实施例的另一方面,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述的应用程序的更新方法。
根据本申请实施例的另一方面,还提供了一种电子设备,该电子设备包括一个或多个处理器;存储器,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现用于运行程序,其中,程序被设置为运行时执行上述的应用程序的更新方法。
根据本申请实施例的另一方面,还提供了一种应用程序的更新系统,包括:处理器;以及存储器,与处理器连接,用于存储处理器的可执行指令;其中,处理器被配置为执行指令,以实现如上述的应用程序的更新方法。
在本申请实施例中,采用在通过服务网格容器来解耦应用程序与语言内容管理系统的方法,在获取客户端发送的用于对目标应用程序中的文本进行语言变更的语言变更指令之后,从服务网格容器中获取与语言变更指令所对应的目标语言,并基于目标语言对应用容器中的目标应用程序中的文本进行语言变更,得到更新后的目标应用程序,其中,目标语言为服务进程从语言内容管理系统中获取到的,并存储在服务网格容器中的文本语言。
在上述过程中,通过设置服务网格容器来实现对客户端的网格化,隔离了应用程序与语言内容管理系统,实现了应用程序与语言内容管理系统的数据资源之间的隔离与保护,避免了文本同步期间所存在的服务的无用内存空间占用过多的问题。另外,服务网格容器中存储的是从语言内容管理系统中获取到的文本语言,在对目标应用程序的文本语言进行更新的过程中,直接从服务网格容器中获取对应的目标语言,而且,由于容器之间也存在隔离,因此,服务网格容器中的服务进程的升级与应用程序相互独立,从而避免了现有技术中服务进程的升级迭代对应用程序所产生的影响,降低了应用程序的更新成本。
由此可见,本申请所提供的方案达到了对目标应用程序的文本进行变更的目的,从而实现了降低应用程序的更新成本的技术效果,进而解决了现有技术中在对应用程序的文本语言进行更新时所存在的应用更新成本高的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种用于实现应用程序的更新方法的电子设备的硬件结构框图;
图2是根据本申请实施例的一种可选的电子设备的示意图;
图3是根据本申请实施例的一种应用程序的更新方法的流程图;
图4是根据本申请实施例的一种可选的客户端的图形用户界面的示意图;
图5是根据本申请实施例的一种可选的容器隔离的示意图;
图6是根据本申请实施例的一种可选的客户端的图形用户界面的示意图;
图7是根据本申请实施例的一种可选的系统交互示意图;
图8是根据本申请实施例的一种可选的容器隔离机制的示意图;
图9是根据本申请实施例的一种可选的内存访问的示意图;
图10是根据本申请实施例的一种应用程序的更新方法的流程图;
图11是根据本申请实施例的一种应用程序的更新方法的流程图;
图12是根据本申请实施例的一种应用程序的更新装置的示意图;
图13是根据本申请实施例的一种电子设备的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本申请实施例,还提供了一种应用程序的更新方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种用于实现应用程序的更新方法的电子设备(或移动设备)的硬件结构框图。如图1所示,电子设备10(或移动设备10)可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器(处理器可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(BUS)端口(可以作为BUS总线的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,电子设备10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到电子设备10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的应用程序的更新方法对应的程序指令/数据存储装置,处理器通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的更新方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至电子设备10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括电子设备10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与电子设备10(或移动设备)的用户界面进行交互。
图1示出的硬件结构框图,不仅可以作为上述电子设备10(或移动设备)的示例性框图,还可以作为上述服务器的示例性框图,一种可选实施例中,图2以框图示出了使用上述图1所示的电子设备10(或移动设备)作为发送端的一种实施例。如图2所示,电子设备10(或移动设备)可以经由数据网络连接或电子连接到一个或多个服务器208。一种可选实施例中,上述电子设备10(或移动设备)可以是任意移动计算设备等。数据网络连接可以是局域网连接、广域网连接、因特网连接,或其他类型的数据网络连接。电子设备10(或移动设备)可以执行以连接到由一个服务器(例如安全服务器)或一组服务器执行的网络服务。网络服务器210是基于网络的用户服务,诸如社交网络、云资源、电子邮件、在线支付或其他在线应用。
需要说明的是,在本实施例中,服务器可执行本实施例所提供的方法,其中,该服务器至少包括应用容器和服务网格容器,应用容器中设置有目标应用程序所对应的程序代码,服务网格容器中设置有服务进程,服务进程用于从语言内容管理系统中获取文本语言。
在上述运行环境下,本申请提供了如图3所示的应用程序的更新方法。图3是根据本申请实施例一的应用程序的更新方法的流程图,如图3所示,该方法包括如下步骤:
步骤S302,获取客户端发送的语言变更指令,其中,语言变更指令用于对目标应用程序中的文本进行语言变更。
在步骤S302中,客户端为目标应用程序所对应的客户端,其中,在该客户端的图形用户界面中,以某一默认语言显示该目标应用程序中的文本,例如,在图4所示的客户端的图形用户界面中,以中文来显示目标应用程序中的文本,该目标应用程序中的文本可以为但不限于标题、链接、网页内容等,例如,在图4中,目标应用程序中的文本为“内容推荐”、“视频”、“精选专题”、“热议话题”、“数字化”、“兴趣技能”等文本。
可选的,客户端上设置有语言变更控件,在用户点击了语言变更控件,并从语言变更控件所对应的语言类型的下拉列表中选择目标语言之后,客户端自动生成语言变更指令,并将语言变更指令发送至服务器,以使服务器对目标应用程序进行语言变更。其中,客户端在生成语言变更指令的过程中,可以将用户所选择的目标语言的相关信息封装至语言变更指令中,该相关信息可以包括但不限于目标语言所对应的语言标识,该语言标识可以为目标语言所对应的语言类型的编码。
步骤S304,从服务网格容器中获取与语言变更指令所对应的目标语言,其中,目标语言为服务进程从语言内容管理系统中获取到的,并存储在服务网格容器中的文本语言。
在步骤S304中,语言内容管理系统可以为但不限于美杜莎(Medusa)系统,服务网格容器可实现网络、流量管理和服务治理下沉到基础设施,与应用程序充分解耦,其中,服务网格容器中存储有文本语言。
可选的,图5示出了一种可选的容器隔离的示意图,在图5中,应用容器中设置有目标应用程序;服务网格容器中设置有服务进程,由图5可知,应用容器与服务网格容器之间相互隔离。
需要说明的是,在实际应用中,应用容器可从服务网格容器中获取语言变更指令所对应的目标语言,而无需从语言内容管理系统中获取目标语言,即服务网格容器实现了目标应用程序与语言内容管理系统之间的隔离,从而避免了现有技术中fat client(富客户端)与目标应用程序之间耦合,在目标应用程序启动时从语言内容管理系统中同步文本语言所导致的目标应用程序启动效率低的问题。
另外,由于应用容器与服务网格容器之间相互隔离,目标应用程序所使用的内存与服务进程所使用的内存是相互独立的,因此,当服务网格容器中的服务进程升级,或者,服务网格容器中的文本语言发生变更时,只会使用服务进程所对应的内存,并不会对应用容器造成影响,从而实现了服务进程的升级与目标应用程序之间的相互独立,避免了现有技术中,由于富客户端的迭代升级需业务方配合升级所存在的版本碎片化问题,降低了服务进程的升级成本。
步骤S306,基于目标语言对应用容器中的目标应用程序中的文本进行语言变更,得到更新后的目标应用程序。
在步骤S306中,在从服务网格容器中获取到目标语言之后,应用容器即可对目标应用程序进行更新,从而实现对目标应用程序中的文本语言的变更。例如,在目标语言为英文的情况下,目标应用程序中的文本将由图4所示的图形用户界面变更为图6所示的图形用户界面。
基于上述步骤S302至步骤S306所限定的方案,可以获知,在本申请实施例中,采用在通过服务网格容器来解耦应用程序与语言内容管理系统的方法,在获取客户端发送的用于对目标应用程序中的文本进行语言变更的语言变更指令之后,从服务网格容器中获取与语言变更指令所对应的目标语言,并基于目标语言对应用容器中的目标应用程序中的文本进行语言变更,得到更新后的目标应用程序,其中,目标语言为服务进程从语言内容管理系统中获取到的,并存储在服务网格容器中的文本语言。
容易注意到的是,通过设置服务网格容器来实现对客户端的网格化,隔离了应用程序与语言内容管理系统,实现了应用程序与语言内容管理系统的数据资源之间的隔离与保护,避免了文本同步期间所存在的服务的无用内存空间占用过多的问题。另外,服务网格容器中存储的是从语言内容管理系统中获取到的文本语言,在对目标应用程序的文本语言进行更新的过程中,直接从服务网格容器中获取对应的目标语言,而且,由于容器之间也存在隔离,因此,服务网格容器中的服务进程的升级与应用程序相互独立,从而避免了现有技术中服务进程的升级迭代对应用程序所产生的影响,降低了应用程序的更新成本。
由此可见,本申请所提供的方案达到了对目标应用程序的文本进行变更的目的,从而实现了降低应用程序的更新成本的技术效果,进而解决了现有技术中在对应用程序的文本语言进行更新时所存在的应用更新成本高的技术问题。
在一种可选的实施例中,在检测到目标应用程序首次启动时,服务器控制应用容器和服务网格容器同时启动。如图7所示的系统交互示意图,其中,图7示出了多个服务器内部中的应用容器与服务网格容器的部署,以及客户端与语言内容管理系统之间的交互示意图。由图7可知,服务器中设置有应用容器和服务网格容器,服务网格容器挂载在应用容器上,应用程序中设置有目标应用程序所对应的程序代码,服务网格容器中设置有服务进程,该服务进程可实现功能点扩展,元数据的存储以及全量文件或增量文件的同步。另外,应用容器与服务网格容器之间通过应用程序编程接口实现通信,两个应用程序编程接口之间通过远程过程调用系统(即gRPC)进行通信,即应用容器与服务网格容器之间通过远程过程调用系统进行通信。另外,应用容器与服务网格容器之间还可通过HTTP 2.0(超文本传输协议2.0)进行通信。
需要说明的是,应用容器与服务网格容器之间的应用程序编程接口可以为轻量级的应用程序编程接口,能够使用户轻松的实现多种语言的开发。此外,在目标应用程序启动时,服务网格容器中的服务进程与应用容器中的目标应用程序同步启动,但服务进程的启动与目标应用程序的启动相互独立,从而避免了现有技术中,由于目标应用程序与服务进程之间相互耦合所存在的升级成本高的问题。
进一步的,在控制服务网格容器启动之后,服务器控制服务网格容器对语言内容管理系统进行轮询操作,从语言内容管理系统中获取文本资源包以及文本资源包对应的元数据,然后,控制服务网格容器基于元数据对文本资源包进行完整性检测,得到检测结果。其中,在检测结果表征文本资源包处于完整状态时,服务器控制服务网格容器对文本资源包进行解析,得到目标语言,并存储目标语言至服务网格容器的内存中。其中,上述的检测结果为以下之一:完整状态和非完整状态。
可选的,如图7所示,服务网格容器通过长轮询的方式通过应用程序编程接口来从语言内容管理系统中获取文本资源包。语言内容管理系统根据服务网格容器的请求下发文本资源包所对应的源文件以及文本资源包所对应的元数据。在接收到元数据之后,服务网格容器基于元数据对文本资源包进行完整性检测,其中,元数据中包含了文本资源包的相关信息,例如,文本资源包所对应的文件标识、文件大小等内容,服务网格容器可通过检测文本资源包的文件标识以及文件大小等是否与元数据相同,如果相同,则认为文本资源包处于完整状态,否则,认为文本资源包处于非完整状态。
在确定文本资源包处于完整状态时,服务器对文本资源包进行反向解析,从而得到目标语言,并将目标语言所对应的资源数据加载至服务网格容器所对应的堆内存中,从而完成服务网格容器的启动。
需要说明的是,只有在应用容器中的目标应用程序以及服务网格容器中的服务进程全部完成启动之后,服务器才会启动成功,并能正常承接外部的业务流量,例如,在应用容器中的目标应用程序以及服务网格容器中的服务进程全部完成启动之后,服务器才能接收用户基于客户端的查询指令等。
此外,还需要说明的是,如图7所示,管理员可对语言内容管理系统中的语言和/或文本进行更新,其中,在对语言内容管理系统进行文本添加时,管理员可向语言内容管理系统录入新增文本,基于语言内容管理系统对新增文本进行文本翻译,然后生成新增文本所对应的源文件,在接收到服务网格容器的数据下发请求之后,语言内容管理系统即可将源文件以及源文件所对应的元数据下发至服务网格容器中。
在一种可选的实施例中,在接收到客户端发送的语言变更指令之后,服务器,从服务网格容器中获取与语言变更指令所对应的目标语言。具体的,服务器检测服务网格容器中是否存在与语言变更指令所对应的目标语言,在服务网格容器中存在目标语言时,从服务网格容器中获取目标语言;在服务网格容器中不存在目标语言时,控制服务网格容器从语言内容管理系统中获取目标语言,并将目标语言存储在服务网格容器中,以使应用容器从服务网格容器中获取目标语言。
可选的,图8示出了一种可选的容器隔离机制,由图8可知,应用容器与服务网格容器之间相互隔离,应用容器与服务网格容器之间通过gRPC相互通信。应用容器中设置有目标应用程序,该目标应用程序可实现远程监控代理服务,其存储有资源序列,并具有一定的容灾机制。服务网格容器中设置有远程监控软件,该远程监控原件可实现对服务网格容器的初始化,其还具有监听器和刷新线程,以实现对应用容器发送的服务请求的监听。此外,服务网格容器中还设置有定时调度器,定时调度器中设置有采集线程,以实现对语言内容管理系统下发的元数据的采集。
需要说明的是,由于服务网格容器中的内存存储有文本语言,因此,应用容器可直接从服务网格容器的堆内存中获取目标语言。在应用容器所请求的目标语言未存储在服务网格容器的堆内存中时,服务网格容器再从语言内容管理系统中获取目标语言。
另外,在检测到服务网格容器发生异常时,服务器将服务网格容器存储的文本语言加载至服务器的本地内存中,并控制应用容器中的目标应用程序将服务器的本地内存中的目标语言加载至应用容器的内存中,并基于目标语言对目标应用程序的文本进行语言变更。
可选的,在图8中,堆内存1设置在应用容器中,堆内存2设置在服务网格容器中,硬盘设置在服务器本地中。在服务网格容器发送异常时,例如,服务网格容器中的服务进程的运行逻辑出现异常,或者,服务网格容器与应用容器之间的通信发生异常时,服务网格容器的堆内存中的数据将加载至服务器的硬盘中,从而应用容器中的应用程序编程接口可从服务器的硬盘中获取文本语言,并将文本语言加载至应用容器的堆内存中,以提升应用程序编程接口的稳定性。
另外,图9示出了一种可选的内存访问的示意图,由图9可知,应用容器的堆内存、服务网格容器的堆内存以及服务器的硬盘之间通过键值对的形式来进行内存访问。在图9中,“Hello”、“Bonjour”、“你好”分别表示三种不同的语言所对应的文本,en.K1、fr.K1以及zh.K1分别表示每种语言所对应的标识,K1表示文本,en、fr、zh分别对应不同的语言类型。
在另一种可选的实施例中,在基于目标语言对应用容器中的目标应用程序中的文本进行语言变更,得到更新后的目标应用程序之前,服务器还从服务网格容器中获取热点文本语言,并在应用容器的内存中缓存热点文本语言,其中,热点文本语言为使用频率大于预设频率的语言。
需要说明的是,由于一次应用程序编程接口的请求会有一次序列化跟反序列化的过程,因此,在本实施例中,在应用容器内也设置了一部分堆内存来缓存热点文本语言,以提升应用程序编程接口的翻译效率。
另外,在检测到服务网格容器中的服务进程发生更新时,服务器确定更新后的服务进程所对应的进程版本,并在应用容器中对进程版本进行函数声明。
需要说明的是,由于应用程序编程接口只暴露简单的键值对的访问方式,因此,如果服务进程发生功能的升级迭代并不会涉及到应用程序编程接口的升级变更,只需要通过IAC(基础设施即代码)文件声明服务进程所对应的进程版本即可,并不涉及到代码变更,从而降低了服务进程的升级迭代成本,也可实现在不重新启动目标应用程序的情况下,即可实现服务进程的热更新,进一步降低了更新服务进程的更新成本。
由上述内容可知,随着云原生的普及,面向云的开发模式对传统的开发模式带来了新的挑战跟要求,网络、流量等服务下沉与应用开发解耦,一些基础的服务组件也可以通过网格化的方案与应用程序解耦,使得应用程序更轻量迭代更便捷。而多语言服务也可以作为国际化基础能力,通过IAC声明帮助应用快速完成国际化改造。综上,云原生开发模式采用模块化架构,通过标准接口和协议进行通信,语言内容管理系统提供的多语言服务网格化,通过服务网格容器中的服务进程来提供更标准便捷的多语言解决方案,通过多容器间的资源隔离与保护,提供更稳定的服务能力,实现与应用程序的独立升级。
需要说明的是,云原生为从开发态,和交付态去重新定义整个软件工程过程,从而推动整个软件工程相关所有体系进行升级。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式应用程序编程接口。
由此可见,本申请所提供的方案基于网格化实现国际化内容的下沉,同时提供标准HTTP 2.0接口可快速实现应用的国际化改造,通过HTTP 2.0接口协议与应用程序进行交互,轻量的应用程序编程接口定义,可轻松实现多种开发语言的应用程序编程接口。而且,本申请所提供的方案可实现多容器间的资源隔离,多语言的服务进程的启动更新不对应用程序产生影响,即服务进程的升级与业务独立,实现服务进程的独立升级迭代。最后,本申请所提供的方案实现了多语言富客户端的网格化,通过容器间与资源隔离机制,保障应用程序与服务进程之间的隔离与保护,使变更迭代周期与应用解耦,实现了服务进程的独立热更新。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的应用程序的更新方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
实施例2
本申请还提供了如图10所示的应用程序的更新方法,在本实施例中,客户端可执行本实施例所提供的方案,其中,图10是根据本申请实施例的应用程序的更新方法的流程图,如图10所示,该方法包括如下步骤:
步骤S1002,响应对目标应用程序的文本进行语言变更的语言变更指令。
在步骤S1002中,语言变更指令中至少包括用户所选择的目标语言的相关信息,该相关信息可以包括但不限于目标语言所对应的语言标识,该语言标识可以为目标语言所对应的语言类型的编码,该目标语言为用户所选择的期望客户端的图形用户界面所展示的目标应用程序的文本所对应的语言,例如,图6中的英文。
可选的,客户端上设置有语言变更控件,在用户点击了语言变更控件,并从语言变更控件所对应的语言类型的下拉列表中选择目标语言之后,客户端自动生成语言变更指令,并将语言变更指令发送至服务器,以使服务器对目标应用程序进行语言变更。
步骤S1004,向服务器发送语言变更指令,并获取服务器基于语言变更指令所返回的目标语言,其中,服务器至少包括应用容器和服务网格容器,应用容器中设置有目标应用程序所对应的程序代码,服务网格容器中设置有服务进程,服务进程用于基于语言变更指令从语言内容管理系统中获取目标语言。
在步骤S1004中,在客户端向服务器发送语言变更指令之后,服务器服务网格容器中获取与语言变更指令所对应的目标语言,其中,语言内容管理系统可以为但不限于美杜莎(Medusa)系统,服务网格容器可实现网络、流量管理和服务治理下沉到基础设施,与应用程序充分解耦,其中,服务网格容器中存储有文本语言。
需要说明的是,在实际应用中,应用容器可从服务网格容器中获取语言变更指令所对应的目标语言,而无需从语言内容管理系统中获取目标语言,即服务网格容器实现了目标应用程序与语言内容管理系统之间的隔离,从而避免了现有技术中fat client(富客户端)与目标应用程序之间耦合,在目标应用程序启动时从语言内容管理系统中同步文本语言所导致的目标应用程序启动效率低的问题。
另外,由于应用容器与服务网格容器之间相互隔离,因此,当服务网格容器中的服务进程升级,或者,服务网格容器中的文本语言发生变更时,并不会对应用容器造成影响,从而实现了服务进程的升级与目标应用程序之间的相互独立,避免了现有技术中,由于富客户端的迭代升级需业务方配合升级所存在的版本碎片化问题,降低了服务进程的升级成本。
步骤S1006,展示更新后的目标应用程序,其中,更新后的目标应用程序为加载目标语言后的目标应用程序。
在步骤S1006中,在从服务网格容器中获取到目标语言之后,应用容器即可对目标应用程序进行更新,从而实现对目标应用程序中的文本语言的变更。例如,在目标语言为英文的情况下,目标应用程序中的文本将由图4所示的图形用户界面变更为图6所示的图形用户界面。
基于上述步骤S1002至步骤S1006所限定的方案,可以获知,在本申请实施例中,采用在通过服务网格容器来解耦应用程序与语言内容管理系统的方法,在响应对目标应用程序的文本进行语言变更的语言变更指令之后,客户端向服务器发送语言变更指令,并获取服务器基于语言变更指令所返回的目标语言,然后,展示更新后的目标应用程序,其中,更新后的目标应用程序为加载目标语言后的目标应用程序,服务器至少包括应用容器和服务网格容器,应用容器中设置有目标应用程序所对应的程序代码,服务网格容器中设置有服务进程,服务进程用于基于语言变更指令从语言内容管理系统中获取目标语言。
容易注意到的是,通过设置服务网格容器来实现对客户端的网格化,隔离了应用程序与语言内容管理系统,实现了应用程序与语言内容管理系统的数据资源之间的隔离与保护,避免了文本同步期间所存在的服务的无用内存空间占用过多的问题。另外,服务网格容器中存储的是从语言内容管理系统中获取到的文本语言,在对目标应用程序的文本语言进行更新的过程中,直接从服务网格容器中获取对应的目标语言,而且,由于容器之间也存在隔离,因此,服务网格容器中的服务进程的升级与应用程序相互独立,从而避免了现有技术中服务进程的升级迭代对应用程序所产生的影响,降低了应用程序的更新成本。
由此可见,本申请所提供的方案达到了对目标应用程序的文本进行变更的目的,从而实现了降低应用程序的更新成本的技术效果,进而解决了现有技术中在对应用程序的文本语言进行更新时所存在的应用更新成本高的技术问题。
此外,还需要说明的是,在本实施例中,服务器基于服务网格容器和应用容器对目标应用程序的文本进行语言变更的过程已在实施例1中进行描述,在此不再赘述。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的应用程序的更新方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
实施例3
在上述运行环境下,本申请提供了如图11所示的应用程序的更新方法。图11是根据本申请实施例的应用程序的更新方法的流程图,如图11所示,该方法包括如下步骤:
步骤S1102,在图形用户界面上显示目标应用程序,其中,目标应用程序的文本所对应的语言为第一语言。
在步骤S1102中,客户端为本实施例所提供方法的执行主体,客户端为目标应用程序所对应的客户端,其中,在该客户端的图形用户界面中,以某一默认语言显示该目标应用程序中的文本,例如,在图4所示的客户端的图形用户界面中,以中文(即第一语言)来显示目标应用程序中的文本,该目标应用程序中的文本可以为但不限于标题、链接、网页内容等,例如,在图4中,目标应用程序中的文本为“内容推荐”、“视频”、“精选专题”、“热议话题”、“数字化”、“兴趣技能”等文本。
步骤S1104,响应对目标应用程序的文本进行语言变更的语言变更指令,向服务器发送语言变更指令,其中,服务器至少包括应用容器和服务网格容器,应用容器中设置有目标应用程序所对应的程序代码,服务网格容器中设置有服务进程,服务进程用于基于语言变更指令从语言内容管理系统中获取第二语言。
在步骤S1104中,语言变更指令中至少包括用户所选择的第二语言的相关信息,该相关信息可以包括但不限于第二语言所对应的语言标识,该语言标识可以为第二语言所对应的语言类型的编码,该第二语言为用户所选择的期望客户端的图形用户界面所展示的目标应用程序的文本所对应的语言,例如,图6中的英文。
可选的,客户端上设置有语言变更控件,在用户点击了语言变更控件,并从语言变更控件所对应的语言类型的下拉列表中选择第二语言之后,客户端自动生成语言变更指令,并将语言变更指令发送至服务器,以使服务器对目标应用程序进行语言变更。在客户端向服务器发送语言变更指令之后,服务器服务网格容器中获取与语言变更指令所对应的第二语言,其中,语言内容管理系统可以为但不限于美杜莎(Medusa)系统,服务网格容器可实现网络、流量管理和服务治理下沉到基础设施,与应用程序充分解耦,其中,服务网格容器中存储有文本语言。
需要说明的是,在实际应用中,应用容器可从服务网格容器中获取语言变更指令所对应的第二语言,而无需从语言内容管理系统中获取第二语言,即服务网格容器实现了目标应用程序与语言内容管理系统之间的隔离,从而避免了现有技术中fat client(富客户端)与目标应用程序之间耦合,在目标应用程序启动时从语言内容管理系统中同步文本语言所导致的目标应用程序启动效率低的问题。
另外,由于应用容器与服务网格容器之间相互隔离,因此,当服务网格容器中的服务进程升级,或者,服务网格容器中的文本语言发生变更时,并不会对应用容器造成影响,从而实现了服务进程的升级与目标应用程序之间的相互独立,避免了现有技术中,由于富客户端的迭代升级需业务方配合升级所存在的版本碎片化问题,降低了服务进程的升级成本。
步骤S1106,在图形用户界面上显示语言变更后的目标应用程序,其中,语言变更后的目标应用程序所对应的语言为第二语言。
在步骤S1006中,在从服务网格容器中获取到第二语言之后,应用容器即可对目标应用程序进行更新,从而实现对目标应用程序中的文本语言的变更。例如,在第二语言为英文的情况下,目标应用程序中的文本将由图4所示的图形用户界面变更为图6所示的图形用户界面。
基于上述步骤S1102至步骤S1106所限定的方案,可以获知,在本申请实施例中,采用在通过服务网格容器来解耦应用程序与语言内容管理系统的方法,在图形用户界面上显示目标应用程序,然后客户端响应对目标应用程序的文本进行语言变更的语言变更指令,向服务器发送语言变更指令,并在图形用户界面上显示语言变更后的目标应用程序,其中,目标应用程序的文本所对应的语言为第一语言,语言变更后的目标应用程序所对应的语言为第二语言,服务器至少包括应用容器和服务网格容器,应用容器中设置有目标应用程序所对应的程序代码,服务网格容器中设置有服务进程,服务进程用于基于语言变更指令从语言内容管理系统中获取第二语言。
容易注意到的是,通过设置服务网格容器来实现对客户端的网格化,隔离了应用程序与语言内容管理系统,实现了应用程序与语言内容管理系统的数据资源之间的隔离与保护,避免了文本同步期间所存在的服务的无用内存空间占用过多的问题。另外,服务网格容器中存储的是从语言内容管理系统中获取到的文本语言,在对目标应用程序的文本语言进行更新的过程中,直接从服务网格容器中获取对应的第二语言,而且,由于容器之间也存在隔离,因此,服务网格容器中的服务进程的升级与应用程序相互独立,从而避免了现有技术中服务进程的升级迭代对应用程序所产生的影响,降低了应用程序的更新成本。
由此可见,本申请所提供的方案达到了对目标应用程序的文本进行变更的目的,从而实现了降低应用程序的更新成本的技术效果,进而解决了现有技术中在对应用程序的文本语言进行更新时所存在的应用更新成本高的技术问题。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的应用程序的更新方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
实施例4
根据本申请实施例,还提供了一种用于实施上述应用程序的更新方法的装置,应用于服务器中,服务器至少包括应用容器和服务网格容器,应用容器中设置有目标应用程序所对应的程序代码,服务网格容器中设置有服务进程,服务进程用于从语言内容管理系统中获取文本语言,如图12所示,该装置120包括:第一获取模块1201、第二获取模块1203以及更新模块1205。
其中,第一获取模块1201,用于获取客户端发送的语言变更指令,其中,语言变更指令用于对目标应用程序中的文本进行语言变更;第二获取模块1203,用于从服务网格容器中获取与语言变更指令所对应的目标语言,其中,目标语言为服务进程从语言内容管理系统中获取到的,并存储在服务网格容器中的文本语言;更新模块1205,用于基于目标语言对应用容器中的目标应用程序中的文本进行语言变更,得到更新后的应用。
此处需要说明的是,上述第一获取模块1201、第二获取模块1203以及更新模块1205对应于实施例1中的步骤S302至步骤S306,三个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的电子设备10中。
实施例5
根据本申请实施例,还提供了一种用于实施上述应用程序的更新方法的系统,该系统包括:处理器以及存储器。
其中,存储器,与处理器连接,用于存储处理器的可执行指令;其中,处理器被配置为执行指令,以实现如上述实施例中的应用程序的更新方法。
需要说明的是,在实施例中,采用在通过服务网格容器来解耦应用程序与语言内容管理系统的方法,在获取客户端发送的用于对目标应用程序中的文本进行语言变更的语言变更指令之后,从服务网格容器中获取与语言变更指令所对应的目标语言,并基于目标语言对应用容器中的目标应用程序中的文本进行语言变更,得到更新后的目标应用程序,其中,目标语言为服务进程从语言内容管理系统中获取到的,并存储在服务网格容器中的文本语言。
容易注意到的是,通过设置服务网格容器来实现对客户端的网格化,隔离了应用程序与语言内容管理系统,实现了应用程序与语言内容管理系统的数据资源之间的隔离与保护,避免了文本同步期间所存在的服务的无用内存空间占用过多的问题。另外,服务网格容器中存储的是从语言内容管理系统中获取到的文本语言,在对目标应用程序的文本语言进行更新的过程中,直接从服务网格容器中获取对应的目标语言,而且,由于容器之间也存在隔离,因此,服务网格容器中的服务进程的升级与应用程序相互独立,从而避免了现有技术中服务进程的升级迭代对应用程序所产生的影响,降低了应用程序的更新成本。
由此可见,本申请所提供的方案达到了对目标应用程序的文本进行变更的目的,从而实现了降低应用程序的更新成本的技术效果,进而解决了现有技术中在对应用程序的文本语言进行更新时所存在的应用更新成本高的技术问题。
此外,还需要说明的是,本实施例中的处理器可执行实施例1所提供的方法,具体执行过程在此不再赘述。
实施例6
本申请的实施例可以提供一种电子设备,该电子设备可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述电子设备也可以替换为移动终端等终端设备。
可选地,在本实施例中,上述电子设备可以位于计算机网络的多个网络设备中的至少一个网络设备。
在本实施例中,上述电子设备可以执行应用程序的更新方法中以下步骤的程序代码:获取客户端发送的语言变更指令,其中,语言变更指令用于对目标应用程序中的文本进行语言变更;从服务网格容器中获取与语言变更指令所对应的目标语言,其中,目标语言为服务进程从语言内容管理系统中获取到的,并存储在服务网格容器中的文本语言;基于目标语言对应用容器中的目标应用程序中的文本进行语言变更,得到更新后的目标应用程序。
可选地,图13是根据本申请实施例的一种电子设备的结构框图。如图13所示,该电子设备10可以包括:一个或多个(图中仅示出一个)处理器1302、存储器1304以及外设接口1306。
其中,存储器可用于存储软件程序以及模块,如本申请实施例中的应用程序的更新方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的更新方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至电子设备10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:获取客户端发送的语言变更指令,其中,语言变更指令用于对目标应用程序中的文本进行语言变更;从服务网格容器中获取与语言变更指令所对应的目标语言,其中,目标语言为服务进程从语言内容管理系统中获取到的,并存储在服务网格容器中的文本语言;基于目标语言对应用容器中的目标应用程序中的文本进行语言变更,得到更新后的目标应用程序。
可选的,上述处理器还可以执行如下步骤的程序代码:在检测到目标应用程序首次启动时,控制应用容器和服务网格容器同时启动。
可选的,上述处理器还可以执行如下步骤的程序代码:在控制服务网格容器启动之后,控制服务网格容器对语言内容管理系统进行轮询操作,从语言内容管理系统中获取文本资源包以及文本资源包对应的元数据;控制服务网格容器基于元数据对文本资源包进行完整性检测,得到检测结果,其中,检测结果为以下之一:完整状态和非完整状态;在检测结果表征文本资源包处于完整状态时,控制服务网格容器对文本资源包进行解析,得到目标语言;存储目标语言至服务网格容器的内存中。
可选的,上述处理器还可以执行如下步骤的程序代码:检测服务网格容器中是否存在与语言变更指令所对应的目标语言;在服务网格容器中存在目标语言时,从服务网格容器中获取目标语言;在服务网格容器中不存在目标语言时,控制服务网格容器从语言内容管理系统中获取目标语言,并将目标语言存储在服务网格容器中,以使应用容器从服务网格容器中获取目标语言。
可选的,上述处理器还可以执行如下步骤的程序代码:在检测到服务网格容器发生异常时,将服务网格容器存储的文本语言加载至服务器的本地内存中;控制应用容器中的目标应用程序将服务器的本地内存中的目标语言加载至应用容器的内存中,并基于目标语言对目标应用程序的文本进行语言变更。
可选的,应用容器与服务网格容器之间通过远程过程调用系统进行通信。
可选的,上述处理器还可以执行如下步骤的程序代码:在基于目标语言对应用容器中的目标应用程序中的文本进行语言变更,得到更新后的目标应用程序之前,从服务网格容器中获取热点文本语言,其中,热点文本语言为使用频率大于预设频率的语言;在应用容器的内存中缓存热点文本语言。
可选的,上述处理器还可以执行如下步骤的程序代码:在检测到服务网格容器中的服务进程发生更新时,确定更新后的服务进程所对应的进程版本;在应用容器中对进程版本进行函数声明。
可选的,上述处理器还可以执行如下步骤的程序代码:响应对目标应用程序的文本进行语言变更的语言变更指令;向服务器发送语言变更指令,并获取服务器基于语言变更指令所返回的目标语言,其中,服务器至少包括应用容器和服务网格容器,应用容器中设置有目标应用程序所对应的程序代码,服务网格容器中设置有服务进程,服务进程用于基于语言变更指令从语言内容管理系统中获取目标语言;展示更新后的目标应用程序,其中,更新后的目标应用程序为加载目标语言后的目标应用程序。
可选的,上述处理器还可以执行如下步骤的程序代码:在图形用户界面上显示目标应用程序,其中,目标应用程序的文本所对应的语言为第一语言;响应对目标应用程序的文本进行语言变更的语言变更指令,向服务器发送语言变更指令,其中,服务器至少包括应用容器和服务网格容器,应用容器中设置有目标应用程序所对应的程序代码,服务网格容器中设置有服务进程,服务进程用于基于语言变更指令从语言内容管理系统中获取第二语言;在图形用户界面上显示语言变更后的目标应用程序,其中,语言变更后的目标应用程序所对应的语言为第二语言。
本领域普通技术人员可以理解,图13所示的结构仅为示意,电子设备也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等终端设备。图13其并不对上述电子装置的结构造成限定。例如,电子设备10还可包括比图13中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图13所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
实施例7
本申请的实施例还提供了一种计算机可读存储介质。可选地,在本实施例中,上述计算机可读存储介质可以用于保存上述实施例所提供的应用程序的更新方法所执行的程序代码。
可选地,在本实施例中,上述计算机可读存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,计算机可读存储介质被设置为存储用于执行以下步骤的程序代码:获取客户端发送的语言变更指令,其中,语言变更指令用于对目标应用程序中的文本进行语言变更;从服务网格容器中获取与语言变更指令所对应的目标语言,其中,目标语言为服务进程从语言内容管理系统中获取到的,并存储在服务网格容器中的文本语言;基于目标语言对应用容器中的目标应用程序中的文本进行语言变更,得到更新后的目标应用程序。
可选地,在本实施例中,计算机可读存储介质被设置为存储用于执行以下步骤的程序代码:在检测到目标应用程序首次启动时,控制应用容器和服务网格容器同时启动。
可选地,在本实施例中,计算机可读存储介质被设置为存储用于执行以下步骤的程序代码:在控制服务网格容器启动之后,控制服务网格容器对语言内容管理系统进行轮询操作,从语言内容管理系统中获取文本资源包以及文本资源包对应的元数据;控制服务网格容器基于元数据对文本资源包进行完整性检测,得到检测结果,其中,检测结果为以下之一:完整状态和非完整状态;在检测结果表征文本资源包处于完整状态时,控制服务网格容器对文本资源包进行解析,得到目标语言;存储目标语言至服务网格容器的内存中。
可选地,在本实施例中,计算机可读存储介质被设置为存储用于执行以下步骤的程序代码:检测服务网格容器中是否存在与语言变更指令所对应的目标语言;在服务网格容器中存在目标语言时,从服务网格容器中获取目标语言;在服务网格容器中不存在目标语言时,控制服务网格容器从语言内容管理系统中获取目标语言,并将目标语言存储在服务网格容器中,以使应用容器从服务网格容器中获取目标语言。
可选地,在本实施例中,计算机可读存储介质被设置为存储用于执行以下步骤的程序代码:在检测到服务网格容器发生异常时,将服务网格容器存储的文本语言加载至服务器的本地内存中;控制应用容器中的目标应用程序将服务器的本地内存中的目标语言加载至应用容器的内存中,并基于目标语言对目标应用程序的文本进行语言变更。
可选的,应用容器与服务网格容器之间通过远程过程调用系统进行通信。
可选地,在本实施例中,计算机可读存储介质被设置为存储用于执行以下步骤的程序代码:在基于目标语言对应用容器中的目标应用程序中的文本进行语言变更,得到更新后的目标应用程序之前,从服务网格容器中获取热点文本语言,其中,热点文本语言为使用频率大于预设频率的语言;在应用容器的内存中缓存热点文本语言。
可选地,在本实施例中,计算机可读存储介质被设置为存储用于执行以下步骤的程序代码:在检测到服务网格容器中的服务进程发生更新时,确定更新后的服务进程所对应的进程版本;在应用容器中对进程版本进行函数声明。
可选地,在本实施例中,计算机可读存储介质被设置为存储用于执行以下步骤的程序代码:响应对目标应用程序的文本进行语言变更的语言变更指令;向服务器发送语言变更指令,并获取服务器基于语言变更指令所返回的目标语言,其中,服务器至少包括应用容器和服务网格容器,应用容器中设置有目标应用程序所对应的程序代码,服务网格容器中设置有服务进程,服务进程用于基于语言变更指令从语言内容管理系统中获取目标语言;展示更新后的目标应用程序,其中,更新后的目标应用程序为加载目标语言后的目标应用程序。
可选地,在本实施例中,计算机可读存储介质被设置为存储用于执行以下步骤的程序代码:在图形用户界面上显示目标应用程序,其中,目标应用程序的文本所对应的语言为第一语言;响应对目标应用程序的文本进行语言变更的语言变更指令,向服务器发送语言变更指令,其中,服务器至少包括应用容器和服务网格容器,应用容器中设置有目标应用程序所对应的程序代码,服务网格容器中设置有服务进程,服务进程用于基于语言变更指令从语言内容管理系统中获取第二语言;在图形用户界面上显示语言变更后的目标应用程序,其中,语言变更后的目标应用程序所对应的语言为第二语言。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (14)
1.一种应用程序的更新方法,其特征在于,应用于服务器中,所述服务器至少包括应用容器和服务网格容器,所述应用容器中设置有目标应用程序所对应的程序代码,所述服务网格容器中设置有服务进程,所述服务进程用于从语言内容管理系统中获取文本语言,所述方法包括:
获取客户端发送的语言变更指令,其中,所述语言变更指令用于对所述目标应用程序中的文本进行语言变更;
从所述服务网格容器中获取与所述语言变更指令所对应的目标语言,其中,所述目标语言为所述服务进程从所述语言内容管理系统中获取到的,并存储在所述服务网格容器中的文本语言;
基于所述目标语言对所述应用容器中的目标应用程序中的文本进行语言变更,得到更新后的目标应用程序。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在检测到所述目标应用程序首次启动时,控制所述应用容器和所述服务网格容器同时启动。
3.根据权利要求2所述的方法,其特征在于,在控制所述服务网格容器启动之后,所述方法还包括:
控制所述服务网格容器对所述语言内容管理系统进行轮询操作,从所述语言内容管理系统中获取文本资源包以及所述文本资源包对应的元数据;
控制所述服务网格容器基于所述元数据对所述文本资源包进行完整性检测,得到检测结果,其中,所述检测结果为以下之一:完整状态和非完整状态;
在所述检测结果表征所述文本资源包处于所述完整状态时,控制所述服务网格容器对所述文本资源包进行解析,得到所述目标语言;
存储所述目标语言至所述服务网格容器的内存中。
4.根据权利要求1所述的方法,其特征在于,从所述服务网格容器中获取与所述语言变更指令所对应的目标语言,包括:
检测所述服务网格容器中是否存在与所述语言变更指令所对应的目标语言;
在所述服务网格容器中存在所述目标语言时,从所述服务网格容器中获取所述目标语言;
在所述服务网格容器中不存在所述目标语言时,控制所述服务网格容器从所述语言内容管理系统中获取所述目标语言,并将所述目标语言存储在所述服务网格容器中,以使所述应用容器从所述服务网格容器中获取所述目标语言。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在检测到所述服务网格容器发生异常时,将所述服务网格容器存储的文本语言加载至所述服务器的本地内存中;
控制所述应用容器中的目标应用程序将所述服务器的本地内存中的目标语言加载至所述应用容器的内存中,并基于所述目标语言对所述目标应用程序的文本进行语言变更。
6.根据权利要求4所述的方法,其特征在于,所述应用容器与所述服务网格容器之间通过远程过程调用系统进行通信。
7.根据权利要求1所述的方法,其特征在于,在基于所述目标语言对所述应用容器中的目标应用程序中的文本进行语言变更,得到更新后的目标应用程序之前,所述方法还包括:
从所述服务网格容器中获取热点文本语言,其中,所述热点文本语言为使用频率大于预设频率的语言;
在所述应用容器的内存中缓存所述热点文本语言。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在检测到所述服务网格容器中的服务进程发生更新时,确定更新后的服务进程所对应的进程版本;
在所述应用容器中对所述进程版本进行函数声明。
9.一种应用程序的更新方法,其特征在于,包括:
响应对目标应用程序的文本进行语言变更的语言变更指令;
向服务器发送所述语言变更指令,并获取所述服务器基于所述语言变更指令所返回的目标语言,其中,所述服务器至少包括应用容器和服务网格容器,所述应用容器中设置有所述目标应用程序所对应的程序代码,所述服务网格容器中设置有服务进程,所述服务进程用于基于所述语言变更指令从语言内容管理系统中获取所述目标语言;
展示更新后的目标应用程序,其中,所述更新后的目标应用程序为加载所述目标语言后的目标应用程序。
10.一种应用程序的更新方法,其特征在于,包括:
在图形用户界面上显示目标应用程序,其中,所述目标应用程序的文本所对应的语言为第一语言;
响应对所述目标应用程序的文本进行语言变更的语言变更指令,向服务器发送所述语言变更指令,其中,所述服务器至少包括应用容器和服务网格容器,所述应用容器中设置有所述目标应用程序所对应的程序代码,所述服务网格容器中设置有服务进程,所述服务进程用于基于所述语言变更指令从语言内容管理系统中获取第二语言;
在所述图形用户界面上显示语言变更后的目标应用程序,其中,所述语言变更后的目标应用程序所对应的语言为所述第二语言。
11.一种应用程序的更新装置,其特征在于,应用于服务器中,所述服务器至少包括应用容器和服务网格容器,所述应用容器中设置有目标应用程序所对应的程序代码,所述服务网格容器中设置有服务进程,所述服务进程用于从语言内容管理系统中获取文本语言,所述装置包括:
第一获取模块,用于获取客户端发送的语言变更指令,其中,所述语言变更指令用于对所述目标应用程序中的文本进行语言变更;
第二获取模块,用于从所述服务网格容器中获取与所述语言变更指令所对应的目标语言,其中,所述目标语言为所述服务进程从所述语言内容管理系统中获取到的,并存储在所述服务网格容器中的文本语言;
更新模块,用于基于所述目标语言对所述应用容器中的目标应用程序中的文本进行语言变更,得到更新后的应用。
12.一种计算机可读存储介质,其特征在于,计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至10中任意一项所述的应用程序的更新方法。
13.一种电子设备,其特征在于,电子设备包括一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现用于运行程序,其中,所述程序被设置为运行时执行所述权利要求1至10中任意一项所述的应用程序的更新方法。
14.一种应用程序的更新系统,其特征在于,包括:
处理器;以及
存储器,与所述处理器连接,用于存储所述处理器的可执行指令;其中,所述处理器被配置为执行所述指令,以实现如权利要求1至10中任意一项所述的应用程序的更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210529849.2A CN114924768A (zh) | 2022-05-16 | 2022-05-16 | 应用程序的更新方法、装置、系统及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210529849.2A CN114924768A (zh) | 2022-05-16 | 2022-05-16 | 应用程序的更新方法、装置、系统及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114924768A true CN114924768A (zh) | 2022-08-19 |
Family
ID=82807756
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210529849.2A Pending CN114924768A (zh) | 2022-05-16 | 2022-05-16 | 应用程序的更新方法、装置、系统及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114924768A (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060155744A1 (en) * | 2005-01-07 | 2006-07-13 | International Business Machines Corporation | Method and apparatus for implementing container managed uses, ownerships, and references in an enterprise JavaBean environment |
US20090199165A1 (en) * | 2008-01-31 | 2009-08-06 | International Business Machines Corporation | Methods, systems, and computer program products for internationalizing user interface control layouts |
US20180260232A1 (en) * | 2017-03-07 | 2018-09-13 | Vmware, Inc. | Software internationalization and localization protocol in a computing system |
CN108984170A (zh) * | 2017-06-02 | 2018-12-11 | 阿里巴巴集团控股有限公司 | H5页面多语言渲染方法及装置 |
CN109783172A (zh) * | 2019-01-08 | 2019-05-21 | 北京三快在线科技有限公司 | 语言切换方法、装置、电子设备及可读存储介质 |
CN111049915A (zh) * | 2019-12-17 | 2020-04-21 | 书行科技(北京)有限公司 | 一种容器云下消息队列代理网格及方法 |
CN111177318A (zh) * | 2019-12-23 | 2020-05-19 | 杭州安恒信息技术股份有限公司 | 一种执行国际化业务的方法、装置和计算机可读存储介质 |
CN111273978A (zh) * | 2020-01-14 | 2020-06-12 | 网易(杭州)网络有限公司 | 一种多语言游戏资源的配置方法及装置 |
US20210099483A1 (en) * | 2019-07-17 | 2021-04-01 | Jayant Shukla | Runtime detection of injection attacks on web applications via static and dynamic analysis |
CN112995269A (zh) * | 2020-12-10 | 2021-06-18 | 腾讯科技(深圳)有限公司 | 数据处理方法、计算机设备以及可读存储介质 |
US20220103618A1 (en) * | 2020-09-30 | 2022-03-31 | Jpmorgan Chase Bank, N.A. | Data pipeline architecture |
-
2022
- 2022-05-16 CN CN202210529849.2A patent/CN114924768A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060155744A1 (en) * | 2005-01-07 | 2006-07-13 | International Business Machines Corporation | Method and apparatus for implementing container managed uses, ownerships, and references in an enterprise JavaBean environment |
US20090199165A1 (en) * | 2008-01-31 | 2009-08-06 | International Business Machines Corporation | Methods, systems, and computer program products for internationalizing user interface control layouts |
US20180260232A1 (en) * | 2017-03-07 | 2018-09-13 | Vmware, Inc. | Software internationalization and localization protocol in a computing system |
CN108984170A (zh) * | 2017-06-02 | 2018-12-11 | 阿里巴巴集团控股有限公司 | H5页面多语言渲染方法及装置 |
CN109783172A (zh) * | 2019-01-08 | 2019-05-21 | 北京三快在线科技有限公司 | 语言切换方法、装置、电子设备及可读存储介质 |
US20210099483A1 (en) * | 2019-07-17 | 2021-04-01 | Jayant Shukla | Runtime detection of injection attacks on web applications via static and dynamic analysis |
CN111049915A (zh) * | 2019-12-17 | 2020-04-21 | 书行科技(北京)有限公司 | 一种容器云下消息队列代理网格及方法 |
CN111177318A (zh) * | 2019-12-23 | 2020-05-19 | 杭州安恒信息技术股份有限公司 | 一种执行国际化业务的方法、装置和计算机可读存储介质 |
CN111273978A (zh) * | 2020-01-14 | 2020-06-12 | 网易(杭州)网络有限公司 | 一种多语言游戏资源的配置方法及装置 |
US20220103618A1 (en) * | 2020-09-30 | 2022-03-31 | Jpmorgan Chase Bank, N.A. | Data pipeline architecture |
CN112995269A (zh) * | 2020-12-10 | 2021-06-18 | 腾讯科技(深圳)有限公司 | 数据处理方法、计算机设备以及可读存储介质 |
Non-Patent Citations (11)
Title |
---|
FIND_A_WAY: "Android国际化多语言切换", pages 1 - 9, Retrieved from the Internet <URL:https://www.jianshu.com/p/cd9a8ae37d82> * |
KIRITO的技术分享: "Dubbo在Service Mesh下的思考和方案", pages 1 - 7, Retrieved from the Internet <URL:https://developer.aliyun.com/article/648393> * |
R. HARABI: "Managing Microservices with Istio Service Mesh", 《SRECON EMEA 2019》, 3 October 2019 (2019-10-03), pages 1 - 28 * |
XIAOJING XIE等: "A Service Mesh-Based Load Balancing and Task Scheduling System for Deep Learning Applications", 《2020 20TH IEEE/ACM INTERNATIONAL SYMPOSIUM ON CLUSTER, CLOUD AND INTERNET COMPUTING (CCGRID)》, 14 July 2020 (2020-07-14), pages 843 - 849 * |
丁乙等: "面向军用微服务的服务网格架构研究与设计", 《指挥信息系统与技术》, no. 01, 31 January 2020 (2020-01-31), pages 18 - 23 * |
任贵杰: "面向编码规范和架构演进的领域驱动设计开发框架", 《中国优秀硕士学位论文全文数据库(信息科技辑)》, no. 02, 15 February 2021 (2021-02-15), pages 138 - 437 * |
刘文博等: "面向中老铁路的调度集中系统多语言切换方案研究", 《铁道通信信号》, no. 01, 31 January 2022 (2022-01-31), pages 7 - 11 * |
张智雄: "面向大规模异构评测任务的容器集群管理方法", 《中国优秀硕士学位论文全文数据库(信息科技辑)》, no. 01, 15 January 2021 (2021-01-15), pages 138 - 582 * |
果子哥丶: "Service Mesh服务网格架构", pages 1 - 21, Retrieved from the Internet <URL:https://blog.csdn.net/qq_39578545/article/details/117668043> * |
爱情小傻蛋: "ServiceMesh & Istio", pages 1 - 10, Retrieved from the Internet <URL:https://www.jianshu.com/p/0c70f2ca186f> * |
高宇: "基于云原生的拓扑服务系统的设计与实现", 《中国优秀硕士学位论文全文数据库(信息科技辑)》, no. 04, 15 April 2020 (2020-04-15), pages 138 - 130 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10713034B2 (en) | Updating web resources | |
CN106843828B (zh) | 界面显示、加载方法及装置 | |
US11265333B2 (en) | Method of achieving synchronization management of account information of WEB interface in multi-system DAS | |
CN102571940B (zh) | 应用程序远程安装系统、方法、智能终端、应用服务器 | |
CN103324471B (zh) | 动态修改应用启动图标的方法、消息的发送方法、终端 | |
CN101924775B (zh) | 一种Android应用构件的透明加载方法及系统 | |
CN106888233B (zh) | 数据更新系统及方法 | |
CN111930521A (zh) | 用于部署应用的方法、装置、电子设备及可读存储介质 | |
CN111611091A (zh) | 一种业务对象的服务调用方法、装置及介质 | |
CN102833350A (zh) | WebApp更新的处理方法和处理装置 | |
CN105262608A (zh) | 用于网络服务的监控方法和装置 | |
CN111124430A (zh) | 一种混合架构的微服务部署方法和装置 | |
CN109885332A (zh) | 画质芯片软件升级方法、装置、显示设备及存储介质 | |
CN113312083A (zh) | 应用生成方法、装置及设备 | |
CN114637549A (zh) | 基于服务网格的应用的数据处理方法、系统和存储介质 | |
CN104978203A (zh) | 运行参数加载方法和装置 | |
CN110958287B (zh) | 操作对象数据同步方法、装置及系统 | |
CN113449031A (zh) | 数据同步的管理方法、装置及服务器 | |
CN112214701A (zh) | 页面的展示方法及系统、存储介质、电子装置 | |
CN114924768A (zh) | 应用程序的更新方法、装置、系统及电子设备 | |
CN112988879A (zh) | 访问数据库的方法、系统、装置、存储介质及处理器 | |
CN113032205A (zh) | 图片的上传方法及装置、存储介质、电子设备 | |
CN110995462B (zh) | 一种云主机功能扩展方法、系统、设备及计算机存储介质 | |
CN113467776A (zh) | 设备的接入方法、装置、存储介质和电子装置 | |
CN114189400A (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 |