CN106293802A - 实例系统及实例系统中代理的升级方法 - Google Patents
实例系统及实例系统中代理的升级方法 Download PDFInfo
- Publication number
- CN106293802A CN106293802A CN201610532088.0A CN201610532088A CN106293802A CN 106293802 A CN106293802 A CN 106293802A CN 201610532088 A CN201610532088 A CN 201610532088A CN 106293802 A CN106293802 A CN 106293802A
- Authority
- CN
- China
- Prior art keywords
- agency
- instance
- instance system
- file
- program file
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供实例系统及实例系统中代理的升级方法,有效解决了实例系统中操作系统的代理升级时速度与数据一致性不能兼顾的问题。在保证数据一致性的前提下,升级可以以非常快的速度完成,就人的主观感觉而言相当于瞬间实现了代理升级。
Description
技术领域
本发明涉及实例系统及实例系统中代理的升级方法。
背景技术
某种操作系统(例如安卓操作系统)加上运行该操作系统所需的必要硬件(例如处理器、存储器等),可以视为一个实例系统,实例系统中可以运行各种应用软件(程序)。将若干个实例系统按照一定的架构方式(例如分布式)集中管理,可以形成云系统。在云系统中,可以设置一个或多个控制节点(例如具有X86架构的服务器)来管理不同的实例系统。用户通过客户端(例如安装在个人电脑或移动终端上的专用软件)访问云系统,获取云系统提供的服务。
在各个实例系统中,需要设置一个具有实例系统中的操作系统根(root)权限的代理(此处的代理是英文词agent的翻译,指具有某种功能、能够独立运行的某个硬件或软件)来管理实例系统为用户提供的服务,代理自身也需要不断进行升级。
目前代理的升级方式都需要停止服务进程一段时间,在此期间运行一个升级程序覆盖已有版本,随后重新启动实例系统或者重新启动服务。对云系统而言,这就意味着在较长时间里用户都不能正常获取服务,用户体验差,很可能导致用户流失。另一方面,出于代理不间断提供服务的要求,代理往往被设置为自动重启的系统服务,如果其对应的进程被杀掉实例系统中的操作系统会立即重启,这种设置也不符合安装程序停止所有相关服务进程的前提。此外,对于安卓系统而言,尽管安卓系统允许进程在运行时其自身的程序文件被覆盖,但由于安卓系统从性能角度出发默认没有开启SWAP分区,不支持物理内存到闪存的页交换功能,造成进程中大量的数据段无法交换到闪存中,只能侵占物理内存。安卓系统较之常规的Linux系统,在物理内存紧张时更容易导致进程的很多代码所在的物理页面被释放,等需要时再重新从代码文件中读入内存。这种情况下升级程序强行覆盖代码文件,如果在覆盖过程中代理重新读入代码,会造成数据不一致,后果无法预料,轻则进程崩溃,重则对用户提供错误的业务逻辑,破坏整个云系统。
在说明书“背景技术”部分公开的内容,有助于本领域技术人员理解本发明的技术方案,但不应据此认为这些内容一定属于现有技术或公知常识。
发明内容
为了克服“背景技术”部分所反映的缺陷,兼顾实例系统中操作系统的代理升级时的速度与数据一致性,本发明提供实例系统及实例系统中代理的升级方法。
实例系统,包括具有实例系统中的操作系统根权限的代理,代理由符号链接指向。所谓的符号链接,又称软链接,是一类特殊的文件,该文件包含了另一个文件(源文件)的路径名(绝对路径或者相对路径)。对符号链接进行读或写操作时,操作系统会自动把该操作转换为对源文件的操作,而删除符号链接时操作系统仅删除符号链接本身,不删除源文件。
进一步的,代理能够接收包括程序文件、安装脚本和配置文件的升级包。
进一步的,程序文件安装后不覆盖实例系统中的操作系统已有的程序文件。配置文件安装后可以覆盖实例系统中的操作系统已有的配置文件。
进一步的,程序文件与实例系统中的操作系统已有的程序文件不重名或者与实例系统中的操作系统已有的重名程序文件路径不同。
进一步的,升级包还包括升级实例系统中除代理之外的其他应用软件所需要的文件,安装脚本能够先删除实例系统中的操作系统的旧文件,再将新安装的文件的名称修改为和旧文件相同。
进一步的,实例系统中的操作系统为安卓系统。
实例系统中代理的升级(此处的升级应作广义的理解,任何有利于代理实现其功能的安装过程都应视为升级。例如,将运行中出现错误的代理通过安装予以恢复,也应视为升级)方法,包括如下步骤:
代理接收升级包;
代理暂时拒绝启动服务进程的请求并关闭正在运行的服务进程;
代理运行升级包中的安装脚本,更新配置文件和符号链接;
代理通知客户端。
进一步的,代理通知客户端后,客户端与云系统重新连接。
进一步的,代理通知客户端后,代理启动之前被关闭的服务进程。
由于实例系统中代理的升级方法,是在之前所述的实例系统的基础上实现的,为了避免不必要的重复,实例系统中代理的升级方法中的一些描述进行了省略。本领域技术人员通过对照,能够对实例系统中代理的升级方法有清晰、完整的认识。
本发明技术方案中,“包括”、“用于”等词语应按照开放式表达方式理解。本领域技术人员通过阅读本说明书并结合现有技术或公知常识能够获知的内容,本说明书中不再赘述。
本发明提供的实例系统及实例系统中代理的升级方法,有效解决了实例系统中操作系统的代理升级时速度与数据一致性不能兼顾的问题。在保证数据一致性的前提下,升级可以以非常快的速度完成,就人的主观感觉而言相当于瞬间实现了代理升级。
附图说明
图1为具体实施方式中实例系统中代理的升级方法的流程图。
具体实施方式
下面对本发明的实施方式进行进一步的具体说明。但应注意,本发明的范围并不局限于所描述的具体技术方案。任何对所描述的具体技术方案中的技术要素进行相同或等同替换获得的技术方案或本领域技术人员在所描述的具体技术方案的基础上不经过创造性劳动就可以获得的技术方案,都应当视为落入本发明的保护范围。
某种操作系统加上运行该操作系统所需的必要硬件(例如处理器、存储器等),可以构成一个实例系统。实例系统中的操作系统,可以采用安卓(Android)系统。将若干个实例系统按照一定的架构方式集中管理,可以形成云系统。在云系统中,可以设置一个或多个控制节点(例如具有X86架构的服务器)来管理不同的实例系统。用户通过客户端(例如安装在个人电脑或移动终端上的专用软件)访问云系统,获取云系统提供的服务。
在各个实例系统中,需要设置一个具有Android系统root权限的代理(agent)来管理实例系统为用户提供的服务。agent较为简单的实现方式是一个具有Android系统root权限的应用软件,该应用软件在Android系统启动时由init.rc脚本指定为系统服务,自动启动,并且指定如果该应用软件对应的进程被杀掉该应用软件能够立即重新运行。agent由符号链接指向,init.rc脚本中指定agent所在的文件是符号链接。除了agent,Android系统中的其他应用软件也可以由相应的符号链接指向。
agent在运行过程中,收到控制节点发出的升级请求后,从控制节点接收升级包。升级包中包括程序文件、安装脚本和配置文件三类文件,一般为压缩包。程序文件是能够运行的程序,配置文件中记载了运行程序文件时必要的配置信息。上述程序文件和配置文件,指升级agent本身所需要的程序文件和配置文件。安装脚本能够独立运行,在Android系统中安装程序文件和配置文件。安装脚本可以只有一个,而程序文件和配置文件往往都是多个。除此以外,升级包中还可以包括升级除agent之外的其他应用软件所需要的文件。
agent对升级包进行MD5(Message-Digest Algorithm 5)等校验,确认升级包的内容无误后,将升级包存储到指定的文件目录下并解压(如果升级包是压缩包的话)。此时agent暂时拒绝启动服务进程的请求并关闭正在运行的服务进程,然后运行安装脚本。如果将agent本身也视为一种用户服务的话,上述agent暂时拒绝请求并关闭的服务进程指的是由除agent之外的其他应用软件所提供的服务。在Android系统中,agent已经被设置为如果对应的进程被杀掉能够立即重新运行,不可能实现真正意义上的关闭。
安装脚本可将升级包中的程序文件和配置文件存储到指定的位置(例如指定的文件目录下)。在升级包的制作过程中,严格要求包中的程序文件或者不能和Android系统中已有的程序文件重名,或者和Android系统中已有的程序文件重名,但路径不同。如果升级包中的程序文件和Android系统中已有的程序文件执行的功能相同,可以将版本号等信息作为文件名的一部分加以区别,或者通过父目录加以区别。这样,新安装的程序文件不会覆盖已有的程序文件。对于配置文件,则无此要求,新安装的配置文件可以覆盖Android系统中已有的配置文件(即更新配置文件)。此外,安装脚本还会修改agent的符号链接,使其指向新安装的程序文件(即更新符号链接)。
升级包中还可以包括升级除agent之外的其他应用软件所需要的文件,这些文件的升级方法比较灵活。可以由安装脚本更新符号链接(如果对应的应用软件也由符号链接指向),也可以由安装脚本用新文件覆盖Android系统中的旧文件,还可以由安装脚本先删除Android系统中的旧文件,再将新安装的文件的名称修改为和旧文件相同。
agent可以设置为监控安装脚本的运行情况。如果安装脚本运行成功,agent通知客户端将要重新启动,然后自动退出。agent重启后,启动之前被关闭的服务进程,继续对外提供服务。而客户端收到agent重启的通知后,如果发现相应的socket(当网络上的两个程序通过一个双向的通信连接实现数据交换时,这个连接的一端称为一个socket)关闭,则立即尝试反复与云系统重新连接(直到正常建立连接为止)。
以上所述的技术方案中,安装脚本的运行时间非常短,利用毫秒级的时间即可完成。配置文件在进程刚启动时加载到内存,解析转换为内存中的变量后就被释放,不会再次读入内存。因此,对配置文件的更新不会出现同时又被agent等进程读入导致数据不一致的情况。符号链接只是在进程刚启动时被读取,升级时不会被再次访问,更新符号链接也不存在数据不一致的可能性。通过更新符号链接来指向新安装的程序文件,避免了进程运行中更改其自身文件所带来的隐患。安装新的程序文件时不影响已有agent的运行,在安装完成后更新符号链接,agent进程主动退出,可以实现切换到升级后的agent(基于agent在Android系统中能自动重启)。agent在退出前通知客户端,这样客户端可以立即反复尝试与云系统重新连接。在保证数据一致性的前提下,就人的主观感觉而言,agent的升级几乎是瞬间完成的,实例系统提供的服务也几乎是不间断的,用户体验较好。
此外,本发明技术方案中的升级一词,应当作广义的理解,任何有利于agent实现其功能的安装过程都应视为升级。通常情况下,升级是从旧版本到新版本的过程,版本号不断提高。但在一些特殊情况下,例如将运行中出现错误的agent通过安装予以恢复,agent的版本号可能下降甚至退回最初始的版本,但也应视为升级。
基于以上所述的技术方案,可以实现如图1所示的实例系统中代理的升级方法,该方法包括以下步骤:
S101:agent接收升级包;
S102:agent暂时拒绝启动服务进程的请求并关闭正在运行的服务进程;
S103:agent运行升级包中的安装脚本,更新配置文件和符号链接;
S104:agent通知客户端。
agent通知客户端后,还可以有如下平行的步骤,一是客户端与云系统重新连接,二是agent通知客户端后自动退出,重新启动,并启动之前被关闭的服务进程。
本领域技术人员在以上所描述的具体技术方案的基础上,完全可以构造出其他方案。例如,实例系统中的操作系统,可以采取其他操作系统。实例系统中代理的升级方法中,如果有的云系统对应的客户端本身就设置了随时监控与云系统的连接状态如果断开则反复重新连接的功能,则删除步骤S104。在此不一一列举。
Claims (9)
1.实例系统,其特征在于,所述的实例系统包括具有实例系统中的操作系统根权限的代理,所述的代理由符号链接指向。
2.根据权利要求1所述的实例系统,其特征在于,所述的代理能够接收包括程序文件、安装脚本和配置文件的升级包。
3.根据权利要求2所述的实例系统,其特征在于,所述的程序文件安装后不覆盖实例系统中的操作系统已有的程序文件;所述的配置文件安装后可以覆盖实例系统中的操作系统已有的配置文件。
4.根据权利要求2所述的实例系统,其特征在于,所述的程序文件与实例系统中的操作系统已有的程序文件不重名或者与实例系统中的操作系统已有的重名程序文件路径不同。
5.根据权利要求2所述的实例系统,其特征在于,所述的升级包还包括升级实例系统中除代理之外的其他应用软件所需要的文件,所述的安装脚本能够先删除实例系统中的操作系统的旧文件,再将新安装的文件的名称修改为和旧文件相同。
6.根据权利要求1-5中任一项所述的实例系统,其特征在于,所述的实例系统中的操作系统为安卓系统。
7.实例系统中代理的升级方法,特征在于,所述的方法包括如下步骤:
代理接收升级包;
代理暂时拒绝启动服务进程的请求并关闭正在运行的服务进程;
代理运行升级包中的安装脚本,更新配置文件和符号链接;
代理通知客户端。
8.根据权利要求7所述的方法,其特征在于,所述的代理通知客户端后,客户端与云系统重新连接。
9.根据权利要求7所述的方法,其特征在于,所述的代理通知客户端后,代理启动之前被关闭的服务进程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610532088.0A CN106293802A (zh) | 2016-07-07 | 2016-07-07 | 实例系统及实例系统中代理的升级方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610532088.0A CN106293802A (zh) | 2016-07-07 | 2016-07-07 | 实例系统及实例系统中代理的升级方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106293802A true CN106293802A (zh) | 2017-01-04 |
Family
ID=57651501
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610532088.0A Pending CN106293802A (zh) | 2016-07-07 | 2016-07-07 | 实例系统及实例系统中代理的升级方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106293802A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI633454B (zh) * | 2017-02-17 | 2018-08-21 | 宏碁股份有限公司 | 驗證方法及驗證裝置 |
CN112860287A (zh) * | 2021-01-18 | 2021-05-28 | 深圳市锐尔觅移动通信有限公司 | 系统程序升级方法、装置、计算机设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060190939A1 (en) * | 2000-11-17 | 2006-08-24 | Shao-Chun Chen | Updatable mobile handset based on linux with compression and decompression techniques |
CN101697133A (zh) * | 2009-10-26 | 2010-04-21 | 中兴通讯股份有限公司 | 软件升级方法、软件升级系统以及客户端 |
CN102917359A (zh) * | 2012-09-27 | 2013-02-06 | 中兴通讯股份有限公司 | 一种内置PPPoE拨号功能的移动终端及其拨号方法 |
CN105677433A (zh) * | 2016-03-15 | 2016-06-15 | 深圳创维-Rgb电子有限公司 | 服务器程序热升级的方法及装置 |
-
2016
- 2016-07-07 CN CN201610532088.0A patent/CN106293802A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060190939A1 (en) * | 2000-11-17 | 2006-08-24 | Shao-Chun Chen | Updatable mobile handset based on linux with compression and decompression techniques |
CN101697133A (zh) * | 2009-10-26 | 2010-04-21 | 中兴通讯股份有限公司 | 软件升级方法、软件升级系统以及客户端 |
CN102917359A (zh) * | 2012-09-27 | 2013-02-06 | 中兴通讯股份有限公司 | 一种内置PPPoE拨号功能的移动终端及其拨号方法 |
CN105677433A (zh) * | 2016-03-15 | 2016-06-15 | 深圳创维-Rgb电子有限公司 | 服务器程序热升级的方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI633454B (zh) * | 2017-02-17 | 2018-08-21 | 宏碁股份有限公司 | 驗證方法及驗證裝置 |
CN112860287A (zh) * | 2021-01-18 | 2021-05-28 | 深圳市锐尔觅移动通信有限公司 | 系统程序升级方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6774499B2 (ja) | オフラインでのハイブリッドアプリケーションへのアクセスの提供 | |
KR102117058B1 (ko) | 에지 위치들에서 맞춤형 이벤트-트리거된 컴퓨터의 조작을 위한 시스템, 방법 및 컴퓨터-판독가능한 스토리지 매체 | |
CN103765406B (zh) | 用于远程更新执行进程的方法和装置 | |
CN105827446B (zh) | 一种智能交通api网关及智能交通业务系统 | |
US8615588B2 (en) | Accelerate copying of virtual machine images | |
CN104731691B (zh) | 动态调整分布式文件系统内文件副本数目的方法和系统 | |
US9569195B2 (en) | Systems and methods for live operating system upgrades of inline cloud servers | |
CN104714822B (zh) | 用于执行操作系统的实时更新的方法和系统 | |
US20210256148A1 (en) | Sharing of data among containers running on virtualized operating systems | |
US9590852B2 (en) | Server maintenance system | |
US20140379656A1 (en) | System and Method for Maintaining a Cluster Setup | |
CN108089913B (zh) | 一种超融合系统的虚拟机部署方法 | |
CN105893070A (zh) | 应用的sdk的升级方法及系统 | |
US9602600B1 (en) | Method and apparatus for web based storage on-demand | |
CN105052111A (zh) | 跨群集边界的服务迁移 | |
CN109862075B (zh) | 一种Redis服务实例的路由方法 | |
CN111984270A (zh) | 应用部署方法和系统 | |
CN111984269A (zh) | 提供应用构建服务的方法及应用构建平台 | |
CN111930396B (zh) | 一种基于notify机制的4G路由器中通讯模组的升级方法 | |
CN109067599A (zh) | 一种部署集群的方法及装置 | |
US20140109089A1 (en) | System to rebuild difference virtual hard disk for updating operation system and method thereof | |
CN113254156A (zh) | 一种容器组部署方法、装置、电子设备及存储介质 | |
CN109726039B (zh) | 用于管理虚拟机的方法和设备 | |
CN106293802A (zh) | 实例系统及实例系统中代理的升级方法 | |
KR101638689B1 (ko) | 클라이언트 단말에 대한 사용자 맞춤형 동기화 서비스 제공 방법 및 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170104 |