CN103677870B - 系统升级方法及采用该方法升级的系统 - Google Patents
系统升级方法及采用该方法升级的系统 Download PDFInfo
- Publication number
- CN103677870B CN103677870B CN201210332222.4A CN201210332222A CN103677870B CN 103677870 B CN103677870 B CN 103677870B CN 201210332222 A CN201210332222 A CN 201210332222A CN 103677870 B CN103677870 B CN 103677870B
- Authority
- CN
- China
- Prior art keywords
- upgraded
- upgrading
- scheduler module
- point information
- test point
- 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.)
- Active
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明的实施例提供一种系统升级方法及采用该方法升级的系统,涉及计算机技术领域,缩短系统升级时造成服务中断的时间。该方法包括:当系统的待升级进程接收到升级指令时,暂停所提供的服务;所述待升级进程记录并保存所述待升级进程的检测点信息;所述待升级进程执行升级操作,得到升级后进程;所述升级后进程读取相应的检测点信息,以恢复升级前进程所处状态和所提供的服务。本发明实施例应用于对计算机系统进行升级过程中。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种系统升级方法及采用该方法升级的系统。
背景技术
目前,一种实现计算机系统升级的方法为:将由旧系统处理的服务请求暂时转移到其它系统上,并在旧系统上重新部署新版本的服务,以实现将旧系统升级为新系统,之后当新系统上新版本的服务启动后,再将服务请求迁移回来,由新系统继续处理服务请求。
然而,采用上述方法实现系统升级时,由于服务请求的来回迁移,造成服务中断的时间较长。
发明内容
本发明的实施例提供一种系统升级方法及采用该方法升级的系统,缩短系统升级时造成服务中断的时间。
为达到上述目的,本发明的实施例采用如下技术方案:
一方面,提供一种系统升级方法,包括:
当系统的待升级进程接收到升级指令时,暂停所提供的服务;
所述待升级进程记录并保存所述待升级进程的检测点信息,所述检测点信息包括所述待升级进程当前所处状态的相关信息;
所述待升级进程执行升级操作,得到升级后进程,所述待升级进程和升级后进程两者的进程标识相同,且两者各自与其他进程之间的关系相同;
所述升级后进程读取相应的检测点信息,以恢复升级前进程所处状态和所提供的服务。
一种可能的实现方式中,所述待升级进程记录所述待升级进程的检测点信息包括:
待升级进程采用指定序列化工具记录所述待升级进程的检测点信息。
一种可能的实现方式中,所述待升级进程保存所述待升级进程的检测点信息包括:待升级进程在内存中保存所述待升级进程的检测点信息;
所述升级后进程读取相应的检测点信息包括:升级后进程从内存中读取相应的检测点信息。
一种可能的实现方式中,所述待升级进程执行exec系统调用,得到升级后进程所,述exec系统调用的参数为所述待升级进程的新二进制文件的名称。
另一方面,提供一种计算机系统,所述计算机系统包括待升级进程模块,
所述待升级进程模块用于,在接收到升级指令时,暂停所提供的服务;
所述待升级进程模块还用于,记录并保存所述待升级进程模块的检测点信息,所述检测点信息包括所述待升级进程模块当前所处状态的相关信息;
所述待升级进程模块还用于,执行升级操作,得到升级后进程模块,所述待升级进程模块和升级后进程模块两者的进程模块标识相同,且两者各自与其他进程模块之间的关系相同;
所述升级后进程模块,还用于读取相应的检测点信息,以恢复升级前进程模块所处状态和所提供的服务。
一种可能的实现方式中,所述待升级进程模块用于采用指定序列化工具记录所述待升级进程模块的检测点信息。
一种可能的实现方式中,所述待升级进程模块用于在内存中保存所述待升级进程模块的检测点信息;升级后进程模块用于从内存中读取相应的检测点信息。
一种可能的实现方式中,所述待升级进程模块用于执行exec系统调用,得到升级后进程模块,所述exec系统调用的参数为所述待升级进程模块的新二进制文件的名称。
通过上述技术方案,系统的待升级进程接收到升级指令时,暂停所提供的服务;记录并保存所述待升级进程的检测点信息,执行升级操作,得到升级后进程,之后,由所述升级后进程读取相应的检测点信息,以恢复升级前进程所处状态和所提供的服务。由于所述待升级进程和升级后进程两者的进程标识相同,且两者各自与其他进程之间的关系相同,亦即,相当于所述待升级进程完成了自身的升级,因而,所述升级后进程读取相应的检测点信息之后,无需再重新建立与其他进程之间的关系(由于服务有可能需要多个进程之间的交互配合才能完成,因而,在恢复中断的服务之前,需要先恢复各个进程之间的关系),可以立即开始提供服务。当系统中的各个待升级进程均完成升级后,亦即系统的升级也随之完成。同时,由于进程的升级均在内存中进行,因而整个系统升级造成的服务暂停可以控制在毫秒内,与现有技术中需要将服务请求在两个系统之间进行迁移相比,大大缩短了系统升级时造成的服务中断时间。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例1提供的一种系统升级方法的流程图;
图2为本发明实施例1提供的另一种系统升级方法的流程图;
图3为本发明实施例2提供的一种计算机系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
如图1所示,本发明实施例提供一种系统升级方法,包括:
101、当系统的待升级进程接收到升级指令时,暂停所提供的服务。
其中,一个系统中运行有多个不同的进程,每个进程均为操作系统中一个正在运行中的程序。进程处于运行状态时,可以为用户提供该进程对应的服务。
其中,待升级进程接收到的升级指令可以由用户采用升级工具(例如,shell脚本)发出。升级指令的形式可以采用但不限于操作系统内部自定义的信号量,例如SIGUSR1和SIGUSR2。
本文中对系统的升级是通过对各个待升级进程的升级来完成的,亦即当各个待升级进程均完成升级后,系统的升级也随之完成。
本文中的系统为终端上运行的计算机操作系统,该终端可以为提供一定服务的电子产品终端。例如,通信终端、提供一定服务的服务器和客户端等等。
102、所述待升级进程记录并保存所述待升级进程的检测点信息,以便于该待升级进程完成升级后,可以重新读取该检测点信息,来快速回复到升级前所处的状态。
其中,所述检测点信息包括所述待升级进程当前所处状态的相关信息。
例如,所述检测点信息可以用于记录待升级进程是处于就绪状态,准备提供服务;还是处于运行状态,正在提供服务,又或者是阻塞状态,在等待某种条件(如I/O操作或进程同步)满足之后,继续提供服务。
所述检测点信息还可以记录如果待升级进程处于运行状态,那么当前提供的服务对象、服务类型、服务的进展等信息。
103、所述待升级进程执行升级操作,得到升级后进程,所述待升级进程和升级后进程两者的进程标识相同,且两者各自与其他进程之间的关系相同。
104、所述升级后进程读取相应的检测点信息,以恢复升级前进程所处状态和所提供的服务。
本实施例中,所述待升级进程和升级后进程两者的进程标识相同,且两者各自与其他进程之间的关系相同,亦即,相当于所述待升级进程完成了自身的升级,因而,所述升级后进程读取相应的检测点信息之后,无需再重新建立与其他进程之间的关系(由于服务有可能需要多个进程之间的交互配合才能完成,因而,在恢复中断的服务之前,需要先恢复各个进程之间的关系),可以立即开始提供服务。当系统中的各个待升级进程均完成升级后,亦即系统的升级也随之完成。同时,由于进程的升级均在内存中进行,因而整个系统升级造成的服务暂停可以控制在毫秒内,与现有技术中需要将服务请求在两个系统之间进行迁移相比,大大缩短了系统升级时造成的服务中断时间。
一种可能的实现方式中,如图2所示,上述步骤102中所述待升级进程记录所述待升级进程的检测点信息具体可以采用如下步骤实现:1020、待升级进程采用指定序列化工具记录所述待升级进程的检测点信息。
其中,指定序列化工具例如可以为protobuf序列化工具。
上述步骤102中所述待升级进程保存所述待升级进程的检测点信息具体可以替换为:步骤1020、待升级进程在内存中保存所述待升级进程的检测点信息。上述步骤104中所述升级后进程读取相应的检测点信息可以替换为:步骤1040、升级后进程从内存中读取相应的检测点信息。
将所述检测点信息保存在内存中,而不是保存在外置存储器中,可以缩短后续升级后进程读取检测点信息的时间,进而可以进一步缩短进程升级的时间。
一种可能的实现方式中,如图2所示,上述步骤103中所述待升级进程执行升级操作,得到升级后进程可通过如下方式实现:所述待升级进程执行exec系统调用,所述exec系统调用的参数为所述待升级进程的新二进制文件的名称。
为了更好的理解上述exec系统调用,下面对进程空间和进程的二进制文件进行介绍如下:
该进程空间是操作系统为进程在内存中分配的虚拟空间,用于提供给进程运行时使用。该进程的二进制文件表示进程的静态实体,可以存储在磁盘上。当操作系统将该二进制文件加载到对应的进程空间时,则变为动态的实体,即为进程。
在升级前,用户需要将待升级进程的新二进制文件替换掉现有的旧二进制文件。该新二进制文件可以采用与旧二进制文件相同的名称。
上述exec系统调用可以通过指定文件的名称找到可执行文件,并执行该可执行文件。该可执行文件可以为二进制文件。因而,当待升级进程执行该exec系统调用时,亦即在该待升级进程内部执行了该新的二进制文件,可以将新二进制文件更新到所述待升级进程的进程空间,以覆盖掉升级前的旧二进制文件,从而实现了进程自身的升级。亦即该exec系统调用执行完成之后,进程即变为升级后的进程了。与此同时,进程在升级前后的标识及与其他进程之间的关系均没有发生变更,为后续快速恢复升级前进程所处状态提供了便利。
实施例2:
本发明实施例提供一种计算机系统,所述计算机系统中运行有若干进程模块,其中存在至少一个进程模块为待升级进程模块,如图3所示的一种应用场景中,该计算系统中的进程模块2和进程模块n均为待升级模块,每个待升级模块均具有如下功能,下面以一个待升级模块为例进行说明:
所述待升级进程模块用于,在接收到升级指令时,暂停所提供的服务;
其中,待升级进程模块接收到的升级指令可以由用户采用升级工具(例如,shell脚本)发出。升级指令的形式可以采用但不限于操作系统内部自定义的信号量。
所述待升级进程模块还用于,记录并保存所述待升级进程模块的检测点信息,所述检测点信息包括所述待升级进程模块当前所处状态的相关信息;
例如,所述检测点信息可以用于记录待升级进程模块是处于就绪状态,准备提供服务;还是处于运行状态,正在提供服务,又或者是阻塞状态,在等待某种条件(如I/O操作或进程模块同步)满足之后,继续提供服务。
所述检测点信息还可以记录如果待升级进程模块处于运行状态,那么当前提供的服务对象、服务类型、服务的进展等信息。
所述待升级进程模块还用于,执行升级操作,得到升级后进程模块,所述待升级进程模块和升级后进程模块两者的进程模块标识相同,且两者各自与其他进程模块之间的关系相同;
所述升级后进程模块,用于读取相应的检测点信息,以恢复升级前进程模块所处状态和所提供的服务。
本实施例中,系统的待升级进程模块接收到升级指令时,暂停所提供的服务;记录并保存所述待升级进程模块的检测点信息,执行升级操作,得到升级后进程模块,之后,由所述升级后进程模块读取相应的检测点信息,以恢复升级前进程模块所处状态和所提供的服务。由于所述待升级进程模块和升级后进程模块两者的进程模块标识相同,且两者各自与其他进程模块之间的关系相同,亦即,相当于所述待升级进程模块完成了自身的升级,因而,所述升级后进程模块读取相应的检测点信息之后,无需再重新建立与其他进程模块之间的关系(由于服务有可能需要多个进程模块之间的交互配合才能完成,因而,在恢复中断的服务之前,需要先恢复各个进程模块之间的关系),可以立即开始提供服务。当系统中的各个待升级进程模块均完成升级后,亦即系统的升级也随之完成。同时,由于进程模块的升级均在内存中进行,因而整个系统升级造成的服务暂停可以控制在毫秒内,与现有技术中需要将服务请求在两个系统之间进行迁移相比,大大缩短了系统升级时造成的服务中断时间。
一种可能的实现方式中,所述待升级进程模块用于采用指定序列化工具记录所述待升级进程模块的检测点信息。其中,指定序列化工具例如可以为protobuf序列化工具。
一种可能的实现方式中,所述待升级进程模块用于在内存中保存所述待升级进程模块的检测点信息;升级后进程模块用于从内存中读取相应的检测点信息。
将所述检测点信息保存在内存中,而不是保存在外置存储器中,可以缩短后续升级后进程模块读取检测点信息的时间,进而可以进一步缩短进程模块升级的时间。
一种可能的实现方式中,所述待升级进程模块用于执行exec系统调用,得到升级后进程模块,所述exec系统调用的参数为所述待升级进程模块的新二进制文件的名称。
上述exec系统调用可以通过指定文件的名称找到可执行文件,并执行该可执行文件。该可执行文件可以为二进制文件。因而,当待升级进程模块执行该exec系统调用时,亦即在该待升级进程模块内部执行了该新的二进制文件,可以将新二进制文件更新到所述待升级进程模块的进程模块空间,以覆盖掉升级前的旧二进制文件,从而实现了进程模块自身的升级。亦即该exec系统调用执行完成之后,进程模块即变为升级后的进程模块了。与此同时,进程模块在升级前后的标识及与其他进程模块之间的关系均没有发生变更,为后续快速恢复升级前进程模块所处状态提供了便利。
本文中的系统为终端上运行的计算机操作系统,该终端可以为提供一定服务的电子产品终端。例如,通信终端、提供一定服务的服务器和客户端等等。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种系统升级方法,其特征在于,包括:
当系统的待升级进程接收到升级指令时,暂停所提供的服务;
所述待升级进程记录并保存所述待升级进程的检测点信息,所述检测点信息包括所述待升级进程当前所处状态的相关信息;
所述待升级进程执行升级操作,通过新二进制文件得到升级后进程;所述新二进制文件表示升级后进程的静态实体,当操作系统将该二进制文件加载到对应的进程空间时即实现了进程自身的升级;进程的升级全部在内存中完成;所述待升级进程和升级后进程两者的进程标识相同,且两者各自与其他进程之间的关系相同;
所述升级后进程读取相应的检测点信息,以恢复升级前进程所处状态和所提供的服务。
2.根据权利要求1所述的方法,其特征在于,所述升级指令采用操作系统内部自定义的信号量表示。
3.根据权利要求1所述的方法,其特征在于,所述待升级进程记录所述待升级进程的检测点信息包括:待升级进程采用指定序列化工具记录所述待升级进程的检测点信息。
4.根据权利要求1所述的方法,其特征在于,所述待升级进程保存所述待升级进程的检测点信息包括:待升级进程在内存中保存所述待升级进程的检测点信息;
所述升级后进程读取相应的检测点信息包括:升级后进程从内存中读取相应的检测点信息。
5.根据权利要求1所述的方法,其特征在于,所述待升级进程执行升级操作,得到升级后进程包括:
所述待升级进程执行exec系统调用,得到升级后进程,所述exec系统调用的参数为所述待升级进程的新二进制文件的名称。
6.一种计算机系统,其特征在于,包括待升级进程模块,
所述待升级进程模块用于,在接收到升级指令时,暂停所提供的服务;
所述待升级进程模块还用于,记录并保存所述待升级进程模块的检测点信息,所述检测点信息包括所述待升级进程模块当前所处状态的相关信息;
所述待升级进程模块还用于,执行升级操作,通过新二进制文件得到升级后进程模块;新二进制文件表示升级后进程模块的静态实体,当操作系统将该二进制文件加载到对应的进程空间时即实现了进程自身的升级;进程的升级全部在内存中完成;所述待升级进程模块和升级后进程模块两者的进程模块标识相同,且两者各自与其他进程模块之间的关系相同;
所述升级后进程模块,还用于读取相应的检测点信息,以恢复升级前进程模块所处状态和所提供的服务。
7.根据权利要求6所述的计算机系统,其特征在于,所述升级指令采用操作系统内部自定义的信号量表示。
8.根据权利要求6所述的计算机系统,其特征在于,所述待升级进程模块用于采用指定序列化工具记录所述待升级进程模块的检测点信息。
9.根据权利要求6所述的计算机系统,其特征在于,所述待升级进程模块用于在内存中保存所述待升级进程模块的检测点信息;
升级后进程模块用于从内存中读取相应的检测点信息。
10.根据权利要求6所述的计算机系统,其特征在于,所述待升级进程模块用于执行exec系统调用,得到升级后进程模块,所述exec系统调用的参数为所述待升级进程模块的新二进制文件的名称。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210332222.4A CN103677870B (zh) | 2012-09-10 | 2012-09-10 | 系统升级方法及采用该方法升级的系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210332222.4A CN103677870B (zh) | 2012-09-10 | 2012-09-10 | 系统升级方法及采用该方法升级的系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103677870A CN103677870A (zh) | 2014-03-26 |
CN103677870B true CN103677870B (zh) | 2018-01-30 |
Family
ID=50315534
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210332222.4A Active CN103677870B (zh) | 2012-09-10 | 2012-09-10 | 系统升级方法及采用该方法升级的系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103677870B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104166570B (zh) * | 2014-08-15 | 2017-11-24 | 青岛海信网络科技股份有限公司 | 一种在线更新文件的方法、设备及系统 |
CN105117265B (zh) * | 2015-09-17 | 2019-02-15 | 珠海豹趣科技有限公司 | 一种文件升级的方法、装置和终端 |
CN106959866B (zh) * | 2016-01-08 | 2020-12-01 | 阿里巴巴集团控股有限公司 | 一种日志收集客户端及其升级方法 |
CN107547215A (zh) * | 2016-06-23 | 2018-01-05 | 中兴通讯股份有限公司 | 一种网络管理方法及子网管理器 |
CN108021378A (zh) * | 2016-11-03 | 2018-05-11 | 阿里巴巴集团控股有限公司 | 升级系统、基于虚拟机的升级方法及装置 |
TWI740886B (zh) * | 2017-01-23 | 2021-10-01 | 香港商阿里巴巴集團服務有限公司 | 日誌收集客戶端及其升級方法 |
CN110333969A (zh) * | 2019-06-17 | 2019-10-15 | Oppo广东移动通信有限公司 | 系统升级后应用启动异常处理方法及装置、介质和设备 |
CN113312170B (zh) * | 2020-05-29 | 2024-01-23 | 阿里巴巴集团控股有限公司 | 内存管理系统及方法 |
CN113641378B (zh) * | 2021-07-13 | 2024-01-26 | 烽火通信科技股份有限公司 | 光模块程序升级方法、装置、设备及可读存储介质 |
CN115774563A (zh) * | 2021-09-08 | 2023-03-10 | 华为技术有限公司 | 一种客户端软件升级方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101616028A (zh) * | 2009-06-25 | 2009-12-30 | 中兴通讯股份有限公司 | 一种通信程序业务不中断升级方法及系统 |
CN101908980A (zh) * | 2010-08-20 | 2010-12-08 | 中兴通讯股份有限公司 | 一种网管升级的方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7640571B1 (en) * | 1999-07-15 | 2009-12-29 | General Instrument Corporation | Method and apparatus for preventing disruptions in set-top terminal function due to the download of updated programming or data to the set-top terminal |
-
2012
- 2012-09-10 CN CN201210332222.4A patent/CN103677870B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101616028A (zh) * | 2009-06-25 | 2009-12-30 | 中兴通讯股份有限公司 | 一种通信程序业务不中断升级方法及系统 |
CN101908980A (zh) * | 2010-08-20 | 2010-12-08 | 中兴通讯股份有限公司 | 一种网管升级的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103677870A (zh) | 2014-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103677870B (zh) | 系统升级方法及采用该方法升级的系统 | |
CN109325195B (zh) | 浏览器的渲染方法和系统、计算机设备、计算机存储介质 | |
CN107526598B (zh) | 一种网络页面跳转控制方法及系统 | |
CN104965757A (zh) | 虚拟机热迁移的方法、虚拟机迁移管理装置及系统 | |
CN104111867B (zh) | 一种虚拟机迁移装置及方法 | |
CN106550014A (zh) | 服务器集群中的节点升级方法及装置 | |
CN111026510A (zh) | 一种云环境下虚拟机跨存储热迁移方法 | |
CN109978290A (zh) | 一种业务流程回退处理方法、流程引擎和业务系统 | |
CN111143031A (zh) | 一种虚拟机的容量更改方法及装置 | |
CN104063284B (zh) | 运行应用程序的方法和装置 | |
US20180203726A1 (en) | Virtual machine migration method and apparatus | |
CN110958138B (zh) | 一种容器扩容方法及装置 | |
CN106201584B (zh) | 版本升级方法及终端设备 | |
EP3316518B1 (en) | Method and device for upgrading virtual network element, and computer storage medium | |
CN113791870A (zh) | 一种WebAssembly虚拟机分布式系统细粒度迁移方法及系统 | |
CN106201564A (zh) | 在线升级基于内核虚拟机模块的设备和方法 | |
CN105247618A (zh) | 一种硬盘执行应用代码的方法及装置 | |
CN110795121A (zh) | 虚拟化系统升级方法、装置、设备及计算机可读存储介质 | |
CN104219084A (zh) | 一种板卡的启动方法和设备 | |
US20220229689A1 (en) | Virtualization platform control device, virtualization platform control method, and virtualization platform control program | |
CN114816482A (zh) | 块存储服务的升级方法、装置、计算机设备及存储介质 | |
CN107391318A (zh) | 一种容器数据持久化的方法、系统及装置 | |
CN107621970A (zh) | 一种异构cpu的虚拟机迁移方法和装置 | |
EP4208787A1 (en) | Accelerated non-volatile memory device inspection and forensics | |
CN109656708B (zh) | Android的动画播放限制方法、存储介质、电子设备及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |