CN103631651A - 应用程序关闭方法及系统 - Google Patents
应用程序关闭方法及系统 Download PDFInfo
- Publication number
- CN103631651A CN103631651A CN201210309981.9A CN201210309981A CN103631651A CN 103631651 A CN103631651 A CN 103631651A CN 201210309981 A CN201210309981 A CN 201210309981A CN 103631651 A CN103631651 A CN 103631651A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- application program
- application
- deployment platform
- closing
- 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
Images
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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
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
技术领域
本发明涉及数据中心和虚拟化技术领域,具体而言,涉及一种应用程序关闭方法及系统。
背景技术
虚拟化技术是云服务平台构建的基础。虚拟化技术是指在物理服务器上,通过虚拟化管理软件Hypervisor将物理资源分割为多个逻辑分区,每个分区相互隔离,成为独立的虚拟机。对操作系统和应用程序来说虚拟机与物理服务器没有区别,它们可以共享同一台物理服务器的资源。
云服务平台支持为云服务用户提供虚拟系统出租服务,所谓的虚拟系统是指包含一组虚拟机、存储和网络并且彼此间相互连接或关联的资源集合。为了便于用户将传统的应用系统托管在虚拟系统上,虚拟化平台还为云服务用户提供了虚拟系统的部署、管理功能,包括将传统应用系统的应用程序部署在虚拟机上,以及对存在依赖关系的应用程序之间提供顺序启动控制功能。
当应用系统托管到云服务平台后,一个虚拟机上有可能运行一到多个应用程序,因此对于应用系统的启动顺序控制需要云服务平台和虚拟机一起进行控制、协调。对于启动顺序控制的需求,比如对于某些Web系统,Web应用和Web服务的启动要依赖于数据库的信息,因此要求数据库先启动。但是数据库可能与某个Web应用或Web服务部署在一个虚拟机上,如果通过虚拟机的顺序启动控制将无法满足要求,还需要提供虚拟机内部的应用程序顺序启动控制功能。
图1是根据相关技术的云服务平台模型的示意图,如图1所示,该模型图中包括部署平台12,对应用系统的开放虚拟格式(Open Virtualization Format,简称为OVF)包进行部署。OVF包包括应用系统包含的虚拟机的资源配置、映像文件、环境等信息。云服务平台对OVF包的部署过程是应用系统及其包含的虚拟机的环境配置信息的恢复过程。部署平台12负责管理部署应用系统的虚拟机的顺序启动,协调应用程序的顺序启动。应用系统配置信息,包含应用系统中应用程序相关的配置信息,如应用程序的启动顺序、所在的虚拟机标识等。虚拟机14是封装了CPU、内存、本地磁盘和网络等虚拟化的资源实体。虚拟机管理器16负责主机系统内的虚拟机的管理,包括虚拟机的启动和关闭、虚拟机的资源分配等。应用程序是应用系统的某个程序,以实现应用系统的部分功能,应用程序可以独立运行,也可能依赖于其他应用程序的启动。控制引擎142负责协调虚拟机内部应用程序的启动和关闭,应用程序之间交互的协调,控制引擎142在虚拟机启动后由虚拟机中的操作系统触发启动。
图2是根据相关技术的虚拟机中激活引擎的顺序启动的交互流程图,如图2所示,假定应用系统需要两个虚拟机,这两个虚拟机分别由主机系统X和主机系统Y提供,对应的两个虚拟机分别为虚拟机X1和虚拟机Y1,并且虚拟机Y1依赖于虚拟机X1,即要求虚拟机X1先启动。
步骤S202,云服务用户通过部署平台创建应用系统,包括确定所需要的虚拟机、规划应用系统包含的应用程序在虚拟机的部署、和应用程序相关的启动顺序等配置信息。
步骤S204~步骤S210,部署平台先引导主机系统X中的虚拟机X1先启动。
步骤S204,部署平台向主机系统X的虚拟机管理器发送启动虚拟机X1请求。
步骤S206,主机系统X的虚拟机管理器引导虚拟机X1操作系统的启动。
步骤S208,虚拟机X1的操作系统运行激活引擎程序。
步骤S210,虚拟机X1的激活引擎向部署平台返回系统激活完成消息。
步骤S212,部署平台将应用系统中与应用程序相关的配置信息传递给程序协调器和虚拟机X1的激活引擎。
步骤S214~步骤S220,部署平台根据引导应用程序相关的配置信息,控制主机系统Y中的虚拟机Y1的启动。
步骤S214,部署平台向主机系统Y的虚拟机管理器发送启动虚拟机Y1请求。
步骤S216,主机系统Y的虚拟机管理器引导虚拟机Y1操作系统的启动。
步骤S218,虚拟机Y1的操作系统运行激活引擎程序。
步骤S220,虚拟机Y1的激活引擎向部署平台返回系统激活完成消息。
步骤S222,部署平台将应用系统中与应用程序相关的配置信息传递给虚拟机Y1的激活引擎。
图3是根据相关技术的虚拟机中应用程序的顺序启动的交互流程图,如图3所示,假定应用系统需要两个虚拟机,这两个虚拟机分别由主机系统X和主机系统Y提供,对应的两个虚拟机分别为虚拟机X1和虚拟机Y1。虚拟机X1中包含应用程序X11和应用程序X12,虚拟机Y1中包含应用程序Y11和应用程序Y12。应用程序X11和应用程序Y11不依赖于其他应用程序,应用程序Y12依赖于应用程序X12,即要求应用程序X12先启动。
步骤S302,云服务用户通过部署平台创建应用系统,包括确定所需要的虚拟机、规划应用系统包含的应用程序在虚拟机的部署、和应用程序相关的启动顺序等配置信息。
步骤S304,部署平台引导虚拟机X1及其激活引擎的启动,包括应用程序信息的传递,具体可参考图2所示的步骤S204~步骤S212。
步骤S306,部署平台引导虚拟机Y1及其激活引擎的启动,包括应用程序信息的传递,具体可参考图2所示的步骤S214~步骤S222。
步骤S308,虚拟机X1中激活引擎启动后,激活引擎将自动启动应用程序,首先将无依赖关系的应用程序X11先启动。
步骤S310,虚拟机Y1中激活引擎启动后,激活引擎将自动启动应用程序,首先将无依赖关系的应用程序Y11先启动。由于应用程序Y12依赖于应用程序X12先启动,激活引擎将设置定时器T等待应用程序X12启动完成的通知消息。
其中,上述步骤S308和步骤S310中,虚拟机X1中激活引擎启动X1内的无依赖关系的应用程序和虚拟机Y1中激活引擎启动Y1内的无依赖关系的应用程序没有先后顺序,可以同时进行。
步骤S312~步骤S316,虚拟机X1中激活引擎启动应用程序X12。
步骤S312,虚拟机X1的激活引擎向虚拟机X1的操作系统发起执行应用程序X12请求。
步骤S314,虚拟机X1的操作系统在应用程序X12执行完成后向虚拟机X1的激活引擎返回程序执行完成消息。
步骤S316,虚拟机X1的激活引擎向部署平台发送程序执行完成指示,其中携带应用程序X12标识。
步骤S318,部署平台根据应用系统的配置信息,获取应用程序Y12依赖于应用程序X12,则向应用程序Y12所在的虚拟机Y1转发程序执行完成指示,其中携带应用程序X12标识。
步骤S320~步骤S324,虚拟机Y1中激活引擎启动应用程序Y12。
步骤S320,虚拟机Y1的激活引擎在收到关于应用程序X12执行完成指示后,停止定时器T,向虚拟机Y1的操作系统发起执行应用程序Y12请求。
步骤S322,虚拟机Y1的操作系统在应用程序Y12执行完成后向虚拟机Y1的激活引擎返回程序执行完成消息。
步骤S324,虚拟机Y1的激活引擎向部署平台发送程序执行完成指示,其中携带应用程序Y12标识。
目前,云服务平台对应用系统的部署是通过部署平台控制和协调与虚拟机中的激活引擎进行交互。对于存在依赖关系的应用程序之间的启动顺序由虚拟机中的激活引擎控制虚拟机内部的应用程序的启动顺序,由部署平台控制跨主机系统的应用程序的启动顺序。
但是对于一些传统的应用系统来说,在应用系统关闭时,也存在应用程序的关闭依赖关系,即要求应用系统的应用程序按照一定的顺序进行关闭。由于多个应用程序会部署在一个虚拟机上,目前标准中采用虚拟机的顺序关闭无法满足需求。
发明内容
本发明提供了一种应用程序关闭方法及系统,以至少解决相关技术中,在应用系统关闭时,多个应用程序可能会部署在一个虚拟机上,并且要求按照一定的顺序进行关闭,采用虚拟机的顺序关闭无法满足需求的问题。
根据本发明的一个方面,提供了一种应用程序关闭方法,包括:部署平台在关闭应用系统时,根据应用系统配置信息确定与应用系统相关的虚拟机;部署平台向与应用系统相关的虚拟机发送关闭应用系统指示消息,其中,关闭应用系统指示消息用于指示与应用系统相关的虚拟机顺序关闭应用系统中的应用程序。
优选地,部署平台向与应用系统相关的虚拟机发送关闭应用系统指示消息包括:部署平台向与应用系统相关的虚拟机的控制引擎发送关闭应用系统指示消息,其中,控制引擎用于响应部署平台,控制应用系统中的应用程序的顺序关闭。
优选地,在部署平台向与应用系统相关的虚拟机发送关闭应用系统指示消息之后,上述方法还包括:控制引擎接收到来自部署平台的关闭应用系统指示消息,关闭其所属的虚拟机中的无依赖关系的应用程序;控制引擎判断其所属的虚拟机中是否存在依赖于其它应用程序的应用程序;如果存在,控制引擎设置定时器,等待被依赖的应用程序的关闭完成消息。
优选地,在控制引擎关闭其所属的虚拟机中的无依赖关系的应用程序之后,上述方法还包括:如果虚拟机中存在被依赖的应用程序,控制引擎关闭被依赖的应用程序;关闭完成后,控制引擎向部署平台发送应用程序关闭完成消息,其中,上述应用程序关闭完成消息携带有被依赖的应用程序的标识。
优选地,控制引擎关闭被依赖的应用程序包括:控制引擎向其所属的虚拟机的操作系统发送关闭程序请求;被依赖的应用程序关闭完成后,控制引擎接收到来自操作系统的应用程序关闭完成消息,其中,该应用程序关闭完成消息携带有被依赖的应用程序的标识。
优选地,在控制引擎向部署平台发送应用程序关闭完成消息之后,上述方法还包括:部署平台接收到来自控制引擎的应用程序关闭完成消息;部署平台根据应用系统配置信息确定依赖于已关闭应用程序的应用程序;部署平台向依赖于已关闭应用程序的应用程序所在的虚拟机转发应用程序关闭完成消息,指示其关闭依赖于已关闭应用程序的应用程序。
优选地,在部署平台向依赖于已关闭应用程序的应用程序所在的虚拟机转发应用程序关闭完成消息之后,上述方法还包括:依赖于已关闭应用程序的应用程序所在的虚拟机的控制引擎接收到上述应用程序关闭完成消息,停止定时器,并关闭依赖于已关闭应用程序的应用程序。
优选地,在部署平台向与应用系统相关的虚拟机发送关闭应用系统指示消息之后,上述方法还包括:部署平台接收到来自虚拟机的所有应用程序关闭完成消息;部署平台通知虚拟机所属的主机系统的虚拟机管理器关闭虚拟机。
优选地,在部署平台通知虚拟机所属的主机系统的虚拟机管理器关闭虚拟机之后,上述方法还包括:部署平台接收到来自虚拟机管理器的虚拟机关闭完成消息;部署平台确定需要关闭的应用系统相关的虚拟机全部关闭;部署平台返回应用系统关闭完成消息。
优选地,在部署平台根据应用系统配置信息确定与应用系统相关的虚拟机之前,上述方法还包括:部署平台接收到应用系统关闭请求。
优选地,应用系统包括一个或多个应用程序,一个或多个应用程序部署在一组虚拟机上,一个虚拟机上运行一个或多个应用程序。
优选地,上述应用系统配置信息包括:应用系统中的应用程序关闭顺序、应用程序对应的虚拟机。
根据本发明的另一个方面,提供了一种应用程序关闭系统,包括:部署平台和主机系统,其中,部署平台包括:确定模块,用于在关闭应用系统时,根据应用系统配置信息确定与应用系统相关的虚拟机;发送模块,用于向与应用系统相关的虚拟机发送关闭应用系统指示消息,其中,关闭应用系统指示消息用于指示与应用系统相关的虚拟机顺序关闭应用系统中的应用程序;主机系统包括:虚拟机管理器和一个或多个虚拟机,虚拟机包括:操作系统、控制引擎和一个或多个应用程序,控制引擎用于响应部署平台,控制应用系统中的应用程序的顺序关闭。
通过本发明,部署平台指示与需要关闭的应用系统相关的虚拟机对应用系统中的应用程序进行顺序关闭,使得部署在多个虚拟机上的应用系统的多个应用程序可以按照顺序关闭。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据相关技术的云服务平台模型的示意图;
图2是根据相关技术的虚拟机中激活引擎的顺序启动的交互流程图;
图3是根据相关技术的虚拟机中应用程序的顺序启动的交互流程图;
图4是根据本发明实施例的应用程序关闭方法的流程图;
图5是根据本发明实施例的应用程序关闭系统的结构框图;
图6是根据本发明优选实施例的应用程序关闭方法的流程图;
图7是根据本发明优选实施例的跨虚拟机的应用程序顺序关闭的交互流程图;
图8是根据本发明优选实施例的虚拟机平滑关闭的交互流程图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
本发明实施例提供了一种应用程序关闭方法,图4是根据本发明实施例的应用程序关闭方法的流程图,如图4所示,包括如下的步骤S402至步骤S404。
步骤S402,部署平台在关闭应用系统时,根据应用系统配置信息确定与应用系统相关的虚拟机。
步骤S404,部署平台向与应用系统相关的虚拟机发送关闭应用系统指示消息,其中,关闭应用系统指示消息用于指示与应用系统相关的虚拟机顺序关闭应用系统中的应用程序。
相关技术中,在应用系统关闭时,多个应用程序可能会部署在一个虚拟机上,并且要求按照一定的顺序进行关闭,目前标准中采用虚拟机的顺序关闭无法满足需求,因此要求云服务平台提供机制控制和协调应用系统中的应用程序的顺序关闭。本发明实施例中,通过部署平台指示与需要关闭的应用系统相关的虚拟机对应用系统中的应用程序进行顺序关闭,使得部署在多个虚拟机上的应用系统的多个应用程序可以按照顺序关闭。
上述应用系统包括一个或多个应用程序,一个或多个应用程序部署在一组虚拟机上,一个虚拟机上运行一个或多个应用程序。
上述应用系统配置信息包括:应用系统中的应用程序关闭顺序、应用程序对应的虚拟机。
步骤S404包括:部署平台向与应用系统相关的虚拟机的控制引擎发送关闭应用系统指示消息,其中,控制引擎用于响应部署平台,控制应用系统中的应用程序的顺序关闭。本优选实施例中,部署平台向虚拟机的控制引擎发送关闭应用系统指示消息,从而可以通过虚拟机的控制引擎控制虚拟机内部的各个应用程序的顺序关闭。
需要说明的是,上述控制引擎是在现有的激活引擎的基础上,考虑应用程序关闭的称呼,控制引擎包含现有技术对应用程序的激活控制,同时也包含本发明实施例对应用程序的关闭控制。
在步骤S404之后,控制引擎需要根据接收到的关闭应用系统指示消息对其所属的虚拟机中的应用程序进行顺序关闭,先关闭无依赖关系的应用程序,有依赖关系的应用程序关闭完成后,需要向部署平台发送关闭完成消息,具体地,对于依赖其他应用程序的应用程序,需要在接收到来自部署平台的所依赖的应用程序的关闭完成消息之后,再进行关闭;对于被依赖的应用程序,在正常关闭之后,向部署平台发送关闭完成消息。下面对上述应用程序的顺序关闭过程进行详细描述。
控制引擎接收到来自部署平台的关闭应用系统指示消息,关闭其所属的虚拟机中的无依赖关系的应用程序;控制引擎判断其所属的虚拟机中是否存在依赖于其它应用程序的应用程序;如果存在,控制引擎设置定时器,等待被依赖的应用程序的关闭完成消息。
在控制引擎关闭其所属的虚拟机中的无依赖关系的应用程序之后,上述方法还包括:如果虚拟机中存在被依赖的应用程序,控制引擎关闭被依赖的应用程序;关闭完成后,控制引擎向部署平台发送应用程序关闭完成消息,其中,应用程序关闭完成消息携带有被依赖的应用程序的标识。
优选地,控制引擎关闭被依赖的应用程序包括:控制引擎向其所属的虚拟机的操作系统发送关闭程序请求;被依赖的应用程序关闭完成后,控制引擎接收到来自操作系统的应用程序关闭完成消息,其中,应用程序关闭完成消息携带有被依赖的应用程序的标识。
优选地,在控制引擎向部署平台发送应用程序关闭完成消息之后,上述方法还包括:部署平台接收到来自控制引擎的应用程序关闭完成消息;部署平台根据应用系统配置信息确定依赖于已关闭应用程序的应用程序;部署平台向依赖于已关闭应用程序的应用程序所在的虚拟机转发应用程序关闭完成消息,指示其关闭依赖于已关闭应用程序的应用程序。
优选地,在部署平台向依赖于已关闭应用程序的应用程序所在的虚拟机转发应用程序关闭完成消息之后,上述方法还包括:依赖于已关闭应用程序的应用程序所在的虚拟机的控制引擎接收到被依赖应用程序的应用程序关闭完成消息,停止定时器,并关闭依赖于已关闭应用程序的应用程序。关闭依赖于被依赖程序的应用程序的过程与上述关闭被依赖应用程序的过程一致,均是通过虚拟机的操作系统完成,并在关闭完成之后,发送关闭完成消息给部署平台,具体过程此处不再赘述。
虚拟机内部的应用程序按照顺序关闭以后,还需要关闭与应用系统相关的虚拟机,在部署平台向与应用系统相关的虚拟机发送关闭应用系统指示消息之后,上述方法还包括:部署平台接收到来自虚拟机的所有应用程序关闭完成消息;部署平台通知虚拟机所属的主机系统的虚拟机管理器关闭该虚拟机。
在部署平台通知虚拟机所属的主机系统的虚拟机管理器关闭虚拟机之后,虚拟机管理器对该虚拟机进行关闭,关闭完成后,部署平台接收到来自虚拟机管理器的虚拟机关闭完成消息;部署平台确定需要关闭的应用系统相关的虚拟机全部关闭;部署平台返回应用系统关闭完成消息。
在步骤S402之前,上述方法还包括:部署平台接收到应用系统关闭请求。
本发明实施例还提供了一种应用程序关闭系统,该应用程序关闭系统可以用于实现上述应用程序关闭方法。图5是根据本发明实施例的应用程序关闭系统的结构框图,如图5所示,该系统包括部署平台52和主机系统54,下面对其结构进行详细描述。
部署平台52包括:第一确定模块522,用于在关闭应用系统时,根据应用系统配置信息确定与应用系统相关的虚拟机;发送模块524,连接至第一确定模块522,用于向与应用系统相关的虚拟机发送关闭应用系统指示消息,其中,关闭应用系统指示消息用于指示与应用系统相关的虚拟机顺序关闭应用系统中的应用程序。
主机系统54包括:虚拟机管理器542和一个或多个虚拟机544,虚拟机544包括:操作系统5442、控制引擎5444和一个或多个应用程序5446,控制引擎5444用于响应部署平台,控制应用系统中的应用程序的顺序关闭。
发送模块524包括:发送单元,用于向与应用系统相关的虚拟机的控制引擎发送关闭应用系统指示消息。
控制引擎5444包括:第一接收模块,用于接收关闭应用系统指示消息;第一关闭模块,连接至第一接收模块,用于关闭其所属的虚拟机中的无依赖关系的应用程序;判断模块,连接至第一关闭模块,用于控制引擎判断其所属的虚拟机中是否存在依赖于其它应用程序的应用程序;设置模块,连接至判断模块,用于在存在依赖于其它应用程序的应用程序情况下,设置定时器,等待被依赖的应用程序的关闭完成消息。
控制引擎5444还包括:第二关闭模块,连接至第一关闭模块,用于在虚拟机中存在被依赖的应用程序的情况下,关闭被依赖的应用程序;发送模块,连接至第二关闭模块,用于在关闭完成后,向部署平台发送应用程序关闭完成消息,其中,应用程序关闭完成消息携带有被依赖的应用程序的标识。
第二关闭模块包括:发送单元,用于向其所属的虚拟机的操作系统发送关闭程序请求;接收单元,连接至发送单元,用于在被依赖的应用程序关闭完成后,接收来自操作系统的应用程序关闭完成消息,其中,应用程序关闭完成消息携带有被依赖的应用程序的标识。
部署平台52还包括:第一接收模块,用于接收来自控制引擎的应用程序关闭完成消息;第二确定模块,连接至第一接收模块,用于根据应用系统配置信息确定依赖于已关闭应用程序的应用程序;转发模块,连接至第二确定模块,用于向第二确定模块确定的依赖于已关闭应用程序的应用程序所在的虚拟机转发应用程序关闭完成消息,指示其关闭依赖于已关闭应用程序的应用程序。
控制引擎5444还包括:第二接收模块,用于接收已关闭应用程序的应用程序关闭完成消息;停止模块,用于停止定时器,并关闭依赖于已关闭应用程序的应用程序。
部署平台52还包括:第二接收模块,连接至发送模块,用于接收来自虚拟机的所有应用程序关闭完成消息;通知模块,连接至第二接收模块,用于通知虚拟机所属的主机系统的虚拟机管理器关闭虚拟机。
部署平台52还包括:第二接收模块,连接至通知模块,用于接收来自虚拟机管理器的虚拟机关闭完成消息;第三确定模块,连接至第二接收模块,用于确定需要关闭的应用系统相关的虚拟机全部关闭;返回模块,连接至第三确定模块,用于返回应用系统关闭完成消息。
部署平台52还包括:第三接收模块,用于接收应用系统关闭请求。
需要说明的是,装置实施例中描述的应用程序关闭系统对应于上述的方法实施例,其具体的实现过程在方法实施例中已经进行过详细说明,在此不再赘述。
由上述可知,本发明实施例中,部署平台在平滑关闭应用系统时,根据应用系统配置信息,指示虚拟机中的控制引擎顺序关闭虚拟机内运行的应用程序,并协调控制引擎顺序关闭部署在不同虚拟机之间的应用程序。控制引擎在关闭完成被依赖的应用程序后,向部署平台发送该应用程序关闭完成指示。部署平台根据应用系统配置信息,转发应用程序关闭完成指示给依赖于该应用程序的其他应用程序所在的虚拟机。虚拟机中的控制引擎收到某个应用程序关闭完成指示,判断如果有其他程序依赖于该已关闭的程序,则发起其他应用程序关闭过程。虚拟机中的控制引擎在关闭完虚拟机中所有的应用程序后通知部署平台所有程序关闭完成指示,部署平台指示虚拟机管理器关闭该虚拟机。
为了使本发明的技术方案和实现方法更加清楚,下面将结合优选的实施例对其实现过程进行详细描述。
图6是根据本发明优选实施例的应用程序关闭方法的流程图,具体包括如下步骤:
步骤S602,部署平台接收到平滑关闭应用系统请求。部署平台根据应用系统的配置信息,指示与应用系统相关的虚拟机中的控制引擎进行应用程序的顺序关闭。
步骤S604,虚拟机中的控制引擎关闭完成被依赖的应用程序后,向部署平台返回应用程序关闭完成指示。部署平台根据配置信息转发应用程序关闭完成指示给依赖该应用程序的其他应用程序所在的虚拟机。
步骤S606,虚拟机中的控制引擎在关闭完所有应用程序后,向部署平台指示所有应用程序关闭完成指示,部署平台向虚拟机管理器指示关闭该虚拟机。
图7是根据本发明优选实施例的跨虚拟机的应用程序顺序关闭的交互流程图。本优选实施例的预置条件如下:应用系统包含有4个应用程序,分别部署在2个虚拟机上;应用程序X11和应用程序X12部署在虚拟机X1上;应用程序Y11和应用程序Y12部署在虚拟机Y1上;应用程序X11和应用程序X12可以独立关闭;应用程序Y12依赖于应用程序X12,即应用程序Y12必须在应用程序X12关闭完成后才能关闭。
如图7所示,跨虚拟机的应用程序顺序关闭包括如下步骤:
步骤S702,部署平台加载应用系统并正常运行,其中应用程序的分布如预置条件所描述。
步骤S704,部署平台接收到应用系统平滑关闭请求。部署平台根据应用系统的配置信息(如应用系统包含的虚拟机信息)向应用系统包含的所有虚拟机发送关闭应用系统指示。
步骤S706,部署平台向主机系统X的虚拟机X1发送关闭应用系统指示。虚拟机X1的控制引擎接收到关闭应用系统指示后,主动发起与该应用系统相关的应用程序的平滑关闭。
步骤S708,部署平台向主机系统Y的虚拟机Y1发送关闭应用系统指示。虚拟机Y1的控制引擎接收到关闭应用系统指示后,主动发起与该应用系统相关的应用程序的平滑关闭。
步骤S710,虚拟机X1的控制引擎首先关闭无依赖关系的应用程序,如本优选实施例中的应用程序X11。
步骤S712,虚拟机Y1的控制引擎首先关闭无依赖关系的应用程序,如本优选实施例中的应用程序Y11。由于应用程序Y12的关闭依赖于应用程序X12先关闭,控制引擎将设置定时器T等待应用程序X12关闭完成的通知消息。
其中,上述步骤S710和步骤S712中,虚拟机X1和虚拟机Y1关闭各自的无依赖关系的应用程序没有先后顺序,可以同时进行。
步骤S714~步骤S718,虚拟机X1中的激活引擎关闭应用程序X12。
步骤S714,虚拟机X1的控制引擎向虚拟机X1的操作系统发起关闭被依赖的应用程序X12请求。
步骤S716,应用程序X12关闭完成后,向虚拟机X1的控制引擎返回程序关闭完成消息。
步骤S718,虚拟机X1的控制引擎向部署平台发送程序关闭完成指示,其中携带应用程序X12标识。
步骤S720,部署平台根据应用系统的配置信息,获取应用程序Y12依赖于应用程序X12,则向应用程序Y12所在的虚拟机Y1转发程序关闭完成指示,其中携带应用程序X12标识。
步骤S722~步骤S726,虚拟机Y1中的激活引擎关闭应用程序Y12。
步骤S722,虚拟机Y1的控制引擎在收到关于应用程序X12关闭完成指示后,停止定时器T,向虚拟机Y1的操作系统发起关闭应用程序Y12请求。
步骤S724,应用程序Y12关闭完成后,向虚拟机Y1的控制引擎返回程序关闭完成消息。
步骤S726,虚拟机Y1的控制引擎向部署平台发送程序关闭完成指示,其中携带应用程序Y12标识。
步骤S728,虚拟机中的控制引擎在该虚拟机中的应用程序关闭完成后,通知部署平台,由部署平台向虚拟机管理器发起虚拟机关闭过程。
步骤S730,部署平台返回应用系统关闭完成消息。
图8是根据本发明优选实施例的虚拟机平滑关闭的交互流程图,应用系统相关的应用程序在虚拟机上已关闭完成,由虚拟机通知到部署平台进行虚拟机的关闭,如图8所示,包括如下步骤:
步骤S802,云服务用户通过部署平台创建虚拟系统,该虚拟系统部署用户的应用系统,即将组成应用系统的应用程序部署在一组相关的虚拟机上。
步骤S804,部署平台接收到应用系统平滑关闭请求。
步骤S806,部署平台与主机系统X中的虚拟机X1交互,关闭完成虚拟机X1中运行的应用程序。
步骤S808~步骤S816,部署平台关闭虚拟机X1。
步骤S808,虚拟机X1通知部署平台虚拟机X1中的应用程序关闭完成。
步骤S810,部署平台通知主机系统X的虚拟机管理器关闭虚拟机X1。
步骤S812,主机系统X的虚拟机管理器关闭虚拟机X1,虚拟机X1的操作系统进行虚拟机X1的关闭过程。
步骤S814,虚拟机X1通知虚拟机管理器虚拟机X1关闭完成。
步骤S816,虚拟机管理器通知部署平台虚拟机X1关闭完成。
步骤S818,部署平台与主机系统Y中的虚拟机Y1交互,关闭完成虚拟机Y1中运行的应用程序。
步骤S820~步骤S828,部署平台关闭虚拟机Y1。
步骤S820,虚拟机Y1通知部署平台虚拟机Y1中的应用程序关闭完成。
步骤S822,部署平台通知主机系统Y的虚拟机管理器关闭虚拟机Y1。
步骤S824,主机系统Y的虚拟机管理器关闭虚拟机Y1,虚拟机Y1的操作系统进行虚拟机Y1的关闭过程。
步骤S826,虚拟机Y1通知虚拟机管理器虚拟机Y1关闭完成。
步骤S828,虚拟机管理器通知部署平台虚拟机Y1关闭完成。
步骤S830,部署平台返回应用系统关闭完成消息。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
综上所述,根据本发明的上述实施例,提供了一种应用程序关闭方法及系统。通过本发明,部署平台指示与需要关闭的应用系统相关的虚拟机对应用系统中的应用程序进行顺序关闭,使得部署在多个虚拟机上的应用系统的多个应用程序可以按照顺序关闭。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (13)
1.一种应用程序关闭方法,其特征在于包括:
部署平台在关闭应用系统时,根据应用系统配置信息确定与所述应用系统相关的虚拟机;
所述部署平台向与所述应用系统相关的虚拟机发送关闭应用系统指示消息,其中,
所述关闭应用系统指示消息用于指示与所述应用系统相关的虚拟机顺序关闭所述应用系统中的应用程序。
2.根据权利要求1所述的方法,其特征在于,所述部署平台向与所述应用系统相关的虚拟机发送关闭应用系统指示消息包括:
所述部署平台向与所述应用系统相关的虚拟机的控制引擎发送所述关闭应用系统指示消息,其中,所述控制引擎用于响应所述部署平台,控制所述应用系统中的应用程序的顺序关闭。
3.根据权利要求2所述的方法,其特征在于,在所述部署平台向与所述应用系统相关的虚拟机发送关闭应用系统指示消息之后,所述方法还包括:
所述控制引擎接收到来自所述部署平台的所述关闭应用系统指示消息,关闭其所属的虚拟机中的无依赖关系的应用程序;
所述控制引擎判断其所属的虚拟机中是否存在依赖于其它应用程序的应用程序;
如果存在,所述控制引擎设置定时器,等待被依赖的应用程序的关闭完成消息。
4.根据权利要求3所述的方法,其特征在于,在所述控制引擎关闭其所属的虚拟机中的无依赖关系的应用程序之后,所述方法还包括:
如果所述虚拟机中存在被依赖的应用程序,所述控制引擎关闭所述被依赖的应用程序;
关闭完成后,所述控制引擎向所述部署平台发送应用程序关闭完成消息,其中,所述应用程序关闭完成消息携带有所述被依赖的应用程序的标识。
5.根据权利要求4所述的方法,其特征在于,所述控制引擎关闭所述被依赖的应用程序包括:
所述控制引擎向其所属的虚拟机的操作系统发送关闭程序请求;
所述被依赖的应用程序关闭完成后,所述控制引擎接收到来自所述操作系统的应用程序关闭完成消息,其中,所述应用程序关闭完成消息携带有所述被依赖的应用程序的标识。
6.根据权利要求4所述的方法,其特征在于,在所述控制引擎向所述部署平台发送应用程序关闭完成消息之后,所述方法还包括:
所述部署平台接收到来自所述控制引擎的所述应用程序关闭完成消息;
所述部署平台根据所述应用系统配置信息确定依赖于已关闭应用程序的应用程序;
所述部署平台向依赖于所述已关闭应用程序的应用程序所在的虚拟机转发所述应用程序关闭完成消息,指示其关闭依赖于所述已关闭应用程序的应用程序。
7.根据权利要求6所述的方法,其特征在于,在所述部署平台向依赖于所述已关闭应用程序的应用程序所在的虚拟机转发所述应用程序关闭完成消息之后,所述方法还包括:
依赖于所述已关闭应用程序的应用程序所在的虚拟机的控制引擎接收到所述应用程序关闭完成消息,停止定时器,并关闭依赖于所述已关闭应用程序的应用程序。
8.根据权利要求1至7中任一项所述的方法,其特征在于,在所述部署平台向与所述应用系统相关的虚拟机发送关闭应用系统指示消息之后,所述方法还包括:
所述部署平台接收到来自所述虚拟机的所有应用程序关闭完成消息;
所述部署平台通知所述虚拟机所属的主机系统的虚拟机管理器关闭所述虚拟机。
9.根据权利要求8所述的方法,其特征在于,在所述部署平台通知所述虚拟机所属的主机系统的虚拟机管理器关闭所述虚拟机之后,所述方法还包括:
所述部署平台接收到来自所述虚拟机管理器的虚拟机关闭完成消息;
所述部署平台确定需要关闭的应用系统相关的虚拟机全部关闭;
所述部署平台返回应用系统关闭完成消息。
10.根据权利要求1至7中任一项所述的方法,其特征在于,在部署平台根据应用系统配置信息确定与所述应用系统相关的虚拟机之前,所述方法还包括:所述部署平台接收到应用系统关闭请求。
11.根据权利要求1至7中任一项所述的方法,其特征在于,所述应用系统包括一个或多个应用程序,所述一个或多个应用程序部署在一组虚拟机上,一个虚拟机上运行一个或多个应用程序。
12.根据权利要求1至7中任一项所述的方法,其特征在于,所述应用系统配置信息包括:
所述应用系统中的应用程序关闭顺序、所述应用程序对应的虚拟机。
13.一种应用程序关闭系统,其特征在于,包括:部署平台和主机系统,其中,
所述部署平台包括:
确定模块,用于在关闭应用系统时,根据应用系统配置信息确定与所述应用系统相关的虚拟机;
发送模块,用于向与所述应用系统相关的虚拟机发送关闭应用系统指示消息,其中,所述关闭应用系统指示消息用于指示与所述应用系统相关的虚拟机顺序关闭所述应用系统中的应用程序;
所述主机系统包括:虚拟机管理器和一个或多个虚拟机,所述虚拟机包括:操作系统、控制引擎和一个或多个应用程序,所述控制引擎用于响应所述部署平台,控制所述应用系统中的应用程序的顺序关闭。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210309981.9A CN103631651B (zh) | 2012-08-28 | 2012-08-28 | 应用程序关闭方法及系统 |
PCT/CN2013/078673 WO2013178127A1 (zh) | 2012-08-28 | 2013-07-02 | 应用程序关闭方法及系统 |
US14/421,639 US9600318B2 (en) | 2012-08-28 | 2013-07-02 | Method and system for closing application programs of an application system |
EP13797809.4A EP2891979A4 (en) | 2012-08-28 | 2013-07-02 | METHOD AND SYSTEM FOR CLOSING AN APPLICATION |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210309981.9A CN103631651B (zh) | 2012-08-28 | 2012-08-28 | 应用程序关闭方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103631651A true CN103631651A (zh) | 2014-03-12 |
CN103631651B CN103631651B (zh) | 2018-08-03 |
Family
ID=49672457
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210309981.9A Expired - Fee Related CN103631651B (zh) | 2012-08-28 | 2012-08-28 | 应用程序关闭方法及系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9600318B2 (zh) |
EP (1) | EP2891979A4 (zh) |
CN (1) | CN103631651B (zh) |
WO (1) | WO2013178127A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104243560A (zh) * | 2014-09-02 | 2014-12-24 | 赵军富 | 移动设备上的web服务系统 |
CN105550024A (zh) * | 2015-12-08 | 2016-05-04 | 北京元心科技有限公司 | 一种基于容器的移动终端关机方法和装置 |
CN107851038A (zh) * | 2015-07-23 | 2018-03-27 | 伊顿工业(法国)股份有限公司 | 虚拟系统的关闭 |
CN112136292A (zh) * | 2018-03-30 | 2020-12-25 | 斯伦贝谢技术有限公司 | 用于网络的自动关闭和启动的系统和方法 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6311282B2 (ja) * | 2013-11-13 | 2018-04-18 | 富士通株式会社 | 起動制御プログラム、装置、及び方法 |
JP6282736B2 (ja) * | 2014-07-07 | 2018-02-21 | 株式会社日立システムズ | 仮想サーバ稼動制御システム及び仮想サーバ稼動制御プログラム |
CN108512780B (zh) * | 2017-02-28 | 2020-12-15 | 华为技术有限公司 | 定时器实现方法及相关装置 |
US11055110B2 (en) * | 2018-06-05 | 2021-07-06 | Microsoft Technology Licensing, Llc | Operating system service for persistently executing programs |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1633639A (zh) * | 2002-02-15 | 2005-06-29 | 国际商业机器公司 | 响应父窗口中的事件关闭应用程序窗口 |
US20050278700A1 (en) * | 2004-06-14 | 2005-12-15 | Buskens Richard W | Shutting down a plurality of software components in an ordered sequence |
US20110239215A1 (en) * | 2010-03-24 | 2011-09-29 | Fujitsu Limited | Virtual machine management apparatus |
CN102214117A (zh) * | 2010-04-07 | 2011-10-12 | 中兴通讯股份有限公司 | 虚拟机管理方法、系统及虚拟机管理服务器 |
CN102455942A (zh) * | 2010-12-02 | 2012-05-16 | 中标软件有限公司 | 一种广域网虚拟机动态迁移方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4924514B2 (ja) * | 2008-03-31 | 2012-04-25 | 富士通株式会社 | 仮想マシン管理プログラム、管理サーバ装置及び仮想マシン管理方法 |
-
2012
- 2012-08-28 CN CN201210309981.9A patent/CN103631651B/zh not_active Expired - Fee Related
-
2013
- 2013-07-02 US US14/421,639 patent/US9600318B2/en not_active Expired - Fee Related
- 2013-07-02 EP EP13797809.4A patent/EP2891979A4/en not_active Withdrawn
- 2013-07-02 WO PCT/CN2013/078673 patent/WO2013178127A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1633639A (zh) * | 2002-02-15 | 2005-06-29 | 国际商业机器公司 | 响应父窗口中的事件关闭应用程序窗口 |
US20050278700A1 (en) * | 2004-06-14 | 2005-12-15 | Buskens Richard W | Shutting down a plurality of software components in an ordered sequence |
US20110239215A1 (en) * | 2010-03-24 | 2011-09-29 | Fujitsu Limited | Virtual machine management apparatus |
CN102214117A (zh) * | 2010-04-07 | 2011-10-12 | 中兴通讯股份有限公司 | 虚拟机管理方法、系统及虚拟机管理服务器 |
CN102455942A (zh) * | 2010-12-02 | 2012-05-16 | 中标软件有限公司 | 一种广域网虚拟机动态迁移方法及系统 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104243560A (zh) * | 2014-09-02 | 2014-12-24 | 赵军富 | 移动设备上的web服务系统 |
CN107851038A (zh) * | 2015-07-23 | 2018-03-27 | 伊顿工业(法国)股份有限公司 | 虚拟系统的关闭 |
CN105550024A (zh) * | 2015-12-08 | 2016-05-04 | 北京元心科技有限公司 | 一种基于容器的移动终端关机方法和装置 |
CN112136292A (zh) * | 2018-03-30 | 2020-12-25 | 斯伦贝谢技术有限公司 | 用于网络的自动关闭和启动的系统和方法 |
CN112136292B (zh) * | 2018-03-30 | 2022-11-08 | 斯伦贝谢技术有限公司 | 用于网络的自动关闭和启动的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
EP2891979A1 (en) | 2015-07-08 |
US9600318B2 (en) | 2017-03-21 |
CN103631651B (zh) | 2018-08-03 |
EP2891979A4 (en) | 2016-09-07 |
WO2013178127A1 (zh) | 2013-12-05 |
US20150301845A1 (en) | 2015-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103631651A (zh) | 应用程序关闭方法及系统 | |
CN107526659B (zh) | 用于失效备援的方法和设备 | |
WO2016037479A1 (zh) | 虚拟化网络功能vnf优化方法、装置及系统 | |
US20240097985A1 (en) | Information processing method based on internet of things device, related device and storage medium | |
CN103188098B (zh) | 一种容灾切换方法、系统以及装置 | |
CN106982133B (zh) | 一种更改虚拟网卡配置信息的方法、设备及系统 | |
CN103634128A (zh) | 虚拟机放置策略的配置方法及装置 | |
CN111143034B (zh) | 一种控制网络数据转发平面的方法、装置及系统 | |
CN103207965A (zh) | 一种虚拟环境下License认证的方法及装置 | |
IL268328A (en) | Device, system and method for transport management | |
CN104572241A (zh) | 应用程序的切换方法及装置、系统 | |
CN106302210A (zh) | 一种弹性扩容方法、装置及系统 | |
CN103677983A (zh) | 应用的调度方法及装置 | |
CN104035808A (zh) | 虚拟机集合的部署方法和装置 | |
KR20180052930A (ko) | 클라우드 기반의 스마트 팩토리 서비스 제공 방법 및 장치 | |
CN101937465A (zh) | 分布式文件系统及其中的上层文件系统的访问方法 | |
US9325595B1 (en) | Method and apparatus for identifying available work stations | |
CN103678163A (zh) | 数据流的切换方法、装置及系统 | |
CN103186435A (zh) | 系统错误处理方法与使用该方法的服务器系统 | |
CN102073523A (zh) | 实现软件版本同步的方法及装置 | |
KR20150104435A (ko) | 라우팅 처리기의 동작 모드 천이 방법 | |
CN112621738A (zh) | 机器人控制方法、电子设备及计算机可读存储介质 | |
CN112241293A (zh) | 工业互联网云平台的应用管理方法、装置、设备及介质 | |
CN113822995B (zh) | 移动设备导航地图的创建方法、装置及存储介质 | |
CA3095223A1 (en) | Node, network system and method of data synchronisation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180803 Termination date: 20200828 |