CN105760221B - 分布式计算框架的任务调派系统 - Google Patents
分布式计算框架的任务调派系统 Download PDFInfo
- Publication number
- CN105760221B CN105760221B CN201610074884.4A CN201610074884A CN105760221B CN 105760221 B CN105760221 B CN 105760221B CN 201610074884 A CN201610074884 A CN 201610074884A CN 105760221 B CN105760221 B CN 105760221B
- Authority
- CN
- China
- Prior art keywords
- task
- redis
- queue
- client
- service platform
- 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
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/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/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/541—Client-server
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Multi Processors (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开一种分布式计算框架的任务调派系统,其中包括应用服务器、任务队列服务平台与Redis服务平台。应用服务器用于部署多个业务处理服务;任务队列服务平台由多个任务服务器透过网路集群,任务队列服务平台中部署zookeeper服务,任务调度操作用于处理zookeeper服务的消息队列的新的客户任务;由多个Redis服务器透过网路连接构成,Redis服务平台经由网路连接于任务队列服务平台,Redis服务平台根据新加入消息队列中的客户任务调用处理进程,处理进程对客户任务进行清洗并输出第一业务结果存储至Redis缓存存储器中;Redis服务平台的实时计算模块侦测Redis缓存存储器中存在新的第一业务结果,实时计算模块对第一业务结果进行计算并输出第二业务结果。
Description
技术领域
本申请涉及一种任务调派的处理系统,具体涉及一种分布式计算框架的任务调派系统。
背景技术
Redis是一个开源、支持网络、基于内存的键值对存储数据库,支持多种数据类型和多种操作,具有强大的管理数据的功能。随着数据的重要性的提升,对于数据的管理、维护以及安全性的需求也显得越来越重要。因此,为保证Redis的正常运行和服务质量,需要对实现Redis的Redis设备进行管理,该Redis设备可以是Redis服务器或Redis代理服务器,Redis代理服务器用于代理应用层与Redis服务器交互。
随着业务数量的不断增加,传统单机模式的计算系统会因为服务器压力过大而崩溃,导致整个系统的不可用,造成巨大损失。而且传统单机模式的计算系统的存储顺序是:先存储,后计算的顺序,需要等待前一个任务完成,才能进行下一个任务,耗时长。未经处理的各种数据结构、错误数据等都存入数据库中,会占用大量资源,增加了后续的操作复杂程度。此外,传统的分布式系统在运行时都是按照既定的算法规则去调度相应的操作。如果有新的任务加入,往往需要重新部署,工作量较大。因此传统的分布式系统并不具备很好的可扩展性与灵活性。
发明内容
本申请所要解决的技术问题在于提供一种分布式计算框架的任务调派系统。本申请的分布式计算框架的任务调派系统包括多个应用服务器、任务队列服务平台与Redis服务平台。多个应用服务器用于部署多个业务处理服务;任务队列服务平台由多个任务服务器透过网路集群,该应用服务器经由网路连接于该任务队列服务平台,该任务队列服务平台中部署zookeeper服务,该任务队列服务平台透过任务调度操作,该任务调度操作用于处理該zookeeper服务的消息队列的新的客户任务;Redis服务平台,由多个Redis服务器透过网路连接构成,該Redis服务平台经由网路连接于該任务队列服务平台,该Redis服务平台根据由新加入该消息队列中的该客户任务调用处理进程,由该处理进程对该客户任务进行清洗并输出第一业务结果存储至Redis缓存存储器中;由该Redis服务平台的实时计算模块侦测该Redis缓存存储器中存在新的该第一业务结果,该实时计算模块对该第一业务结果进行实时计算并输出第二业务结果至该Redis缓存存储器。
与现有技术相比,本申请可以获得包括以下技术效果:
1)本申请所提供的分布式计算框架的任务调派系统采用分布式与集群相结合的方式部署整体架构,可以将操作复杂的任务划分为多个小任务分别在不同的机器上执行,提高其执行效率,系统不会因为段时间内任务量的爆发式增长而崩溃,增加系统的吞吐量,实现高并发处理。
2)本申请的分布式计算框架的任务调派系统采用存储与计算分开操作,彼此间的耦合度不高,不会被相互影响。使用Redis服务器存储,提供了丰富的数据结构并提供这个数据结构支持的操作,不会造成因服务器关闭数据丢失的情况,结合其高速读写能力、持久化机制等特点,加强了数据处理能力。
当然,实施本申请的任一产品必不一定需要同时达到以上所述的所有技术效果。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1为本申请的分布式计算框架的任务调派系统的架构示意图。
图2为本申请的服务器与相应服务的架构示意图。
图3为本申请的FastLeaderElection的运作流程图。
图4为本申请的zookeeper服务配置的运作流程图。
图5为本申请的队列与相应服务的架构示意图。
具体实施方式
以下请配合附图及实施例来详细说明本申请的实施方式,藉此对本申请如何应用技术手段来解决技术问题并达成技术功效的实现过程能充分理解并据以实施。
请参考图1所示,其系为本申请的分布式计算框架的任务调派系统的架构示意图。本申请的分布式计算框架的任务调派系统就硬体层面的构成包括多个应用服务器110、任务队列服务平台120与Redis服务平台130。所述的应用服务器110透过网络连接于任务队列服务平台120与Redis服务平台130。任务队列服务平台120由多台任务服务器121透过网络相互连接。Redis服务平台130由多台Redis服务器131所构成,而所述的Redis服务器131由网络相互连接。
为能更进一步说明本申请的运作,另提出前述的各种服务器与相应服务的架构示意图,请参考图2所示。应用服务器110的作用在于部署实际的实时计算的业务处理服务,所述的业务处理服务包括用户计算、流量计算、时延计算或数据上报等。任务队列服务平台120提供zookeeper服务、消息队列的存储或消息处理服务等。Redia服务器用于数据的计算服务,也可以实时的扩展内存计算。在图2中部署了Redis配置服务器、计算服务器、上报服务器与队列服务器等。任务队列服务平台120可以透过分布式ETL(Extract,transform andload,简称ETL)系统210所实现。为能区别实体机器与服务的差异,在图中实线直角方块代表所提供的服务,而实线钝角方块代表实体机器。任务队列服务平台120除了提供前述的服务外,另部署zookeeper服务。zookeeper服务用于从多台任务服务器121中选出一台作为主任务服务器121,其馀未选上则为从任务服务器121。若要部署zookeeper服务且对外网提供服务,则需要过半数的任务服务中是可正常运行并且能相互通信。换言之,于存在X台任务服务器121的情况下,必须部署大于(1+X/2)台的任务服务器121,才能保证zookeeper服务可以正常运行。
该些任务服务器121透过一FastLeaderElection算法相互推举出该主任务服务器。FastLeaderElection算法的推举方式包括以下步骤,请参考图3所示:
步骤S310:由任一任务服务器推举自己作为候选任务服务器,并通知其他的任务服务器;
步骤S320:其他任务服务器接获候选任务服务器的通知后,任务服务器根据自身状态选择是否同意候选服务器,并将选择讯息回传给候选任务服务器;
步骤S330:候选任务服务器统计有效的任务服务器的票数是否超过半数;
步骤S340:若超过半数,则由候选任务服务器为新的主任务服务器;以及
步骤S350:若位超过半数,则重新选出候选任务服务器并进行相应的步骤。
首先,由任一任务服务器121推举自己作为候选任务服务器。候选任务服务器打包自带的服务器ID、逻辑钟(logical clock)或察看状态(looking),并传送所述资讯至其他任务服务器121。在其他任务服务器121接获到候选任务服务器的状态讯息后,任务服务器121若本身的察看状态为激活时,任务服务器121也会返回自身的状态讯息给候选任务服务器。
候选任务服务器会根据所接收的状态讯息的逻辑钟判断任务服务器121是否为适格的投票服务器。若是为适格的任务服务器121,则候选服务器会将此一投票记录为有效。若是不适格的任务服务器121,则所述任务服务器121不会被记录在有效的投票之中。当所有投票的票数大于可投票的任务服务器121的数量的一半,则推选候选任务服务器为主任务服务器。反之,当投票数量不满一半时,则会重新执行步骤S310~S350,直至选出一台主任务服务器为止。
接著,对各台的任务服务器121部署zookeeper服务。配置zookeeper服务的方式请参考图4所示,其系包括以下步骤:
步骤S410:主任务服务器预载zookeeper服务的相关程序;
步骤S420:由主任务服务器远程复制zookeeper服务的安装程序至从任务服务器;
步骤S430:从任务服务器运行zookeeper服务的安装程序并根据服务器的状态资讯进而设定zookeeper服务的编号;以及
步骤S440:从任务服务器启动zookeeper服务,并向主任务服务器回报。
当任务队列服务平台120完成zookeeper服务后,任务队列服务平台120透过任务调度操作,任务调度操作用于处理zookeeper服务的消息队列的新的客户任务。所述的任务调度操作的种类包括扫描操作、下载操作与清洗操作。而本申请的消息队列更包括下载队列、欲处理队列与数据加载队列。每一个消息队列都是按照日期的规则进行分类。为进一步说明本申请中所述各种队列与相应服务,请参考图5所示。
扫描操作会实时侦测输入节点是否接入新的客户任务,扫描操作把新接入的客户任务加入消息队列。输入节点指的是分布式ETL系统210中任一计算机所接获客户端的操作要求的别称。本申请的消息队列新加入客户任务时,下载操作会调用对应的处理线程,并由处理线程载入客户任务至Redis服务器131的缓存。扫描操作会读取服务器的配置资讯,用于获取对应任务的运行位置。主任务服务器读取所述任务的最新处理结果。接著,主任务服务器根据处理结果建立连结,向结点取得结果的文件列表。将列表中,小于当前时间的数据存放到消息队列中并记录最大的时间值。最后主任务服务器把时间最大的消息值记录下来,存放到消息队列中。
下载要求于下载客户任务后立即会创建任务锁,并由任务服务器121遍寻该些Redis服务器131中正运行该客户任务的Redis服务器131,并从下载队列中把客户任务搬移至数据加载队列并生成数据预处理讯息且加入客户任务中,再添加数据预处理讯息至预处理队列中。此外,清洗操作包括读取该客户任务的身份(Identity)、分发到的该Redis服务器131、获取该客户任务需要计算的流量、基站字段、用户数字段,该清洗要求完成前述动作后把结果(对此结果定义为第一业务结果)输入至该Redis缓存存储器。其中,其中欲处理队列运行时会增加一个锁节点,使得只允许一个线程读取消息队列。
本申请的任务服务器121同时也实现消息管理与实时计算的功能。消息管理功能主要是包括消息相关的管理处理、控制功能、消息的封装、消息的解析、消息的添加、修改与删除等。而实时计算的功能是根据当前客户端所发出的业务对应Redis服务器131的配置。在对应的Redis服务器131上部署相对应的计算程序,使Redis服务器131可以实时读取队列中的第一业务结果并进行解析与计算。在完成解析与计算第一业务结果后,Redis服务器131把得到的第二业务结果写入该台Redis服务器131之中。
本申请所提供的分布式计算框架的任务调派系统采用分布式与集群相结合的方式部署整体架构,从架构层面加入Zookeeper消息传递技术,保证了计算框架的分布式,保证了服务处理能力的可扩展性。本申请可以将操作复杂的任务划分为多个小任务分别在不同的机器上执行,提高其执行效率,系统不会因为段时间内任务量的爆发式增长而崩溃,增加系统的吞吐量,实现高并发处理。
所述装置与前述的方法流程描述对应,不足之处参考上述方法流程的叙述,不再一一赘述。上述说明示出并描述了本申请的若干优选实施例,但如前所述,应当理解本申请并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本申请的精神和范围,则都应在本申请所附权利要求的保护范围内。
Claims (9)
1.一种分布式计算框架的任务调派系统,其特征在于分布处理一客户端所发出的客户任务,所述的分布式计算框架的任务调派系统包括:
多个应用服务器,用于部署多个业务处理服务;
一任务队列服务平台,由多个任务服务器透过网路集群,该应用服务器经由网路连接于该任务队列服务平台,该任务队列服务平台中部署一zookeeper服务,该任务队列服务平台透过一任务调度操作,该任务调度操作用于处理该 zookeeper服务的一消息队列的新的一客户任务;以及
一Redis服务平台,由多个Redis服务器透过网路连接构成,该 Redis服务平台经由网路连接于该 任务队列服务平台,该Redis服务平台根据由新加入该消息队列中的该客户任务调用一处理进程,由该处理进程对该客户任务进行清洗并输出一第一业务结果存储至一Redis缓存存储器中;
其中,由该Redis服务平台的一实时计算模块侦测该Redis缓存存储器中存在新的该第一业务结果,该实时计算模块对该第一业务结果进行实时计算并输出一第二业务结果至该Redis缓存存储器。
2.如权利要求1所述的分布式计算框架的任务调派系统,其特征在于从该些任务服务器中择一指派为一主任务服务器,其余 为从任务服务器,其中,该些任务服务器透过一FastLeaderElection算法相互推举出该主任务服务器。
3.如权利要求1所述的分布式计算框架的任务调派系统,其特征在于该任务调度操作的种类包括一扫描操作、一下载操作与一清洗操作。
4.如权利要求3所述的分布式计算框架的任务调派系统,其特征在于该消息队列包括一下载队列、一欲处理队列与一数据加载队列。
5.如权利要求4所述的分布式计算框架的任务调派系统,其特征在于该扫描操作实时侦测一输入节点是否接入新的该客户任务,该扫描操作将新接入的该客户任务加入该消息队列。
6.如权利要求5所述的分布式计算框架的任务调派系统,其特征在于该消息队列新加入该客户任务时,该下载操作调用对应的一处理线程,并由该处理线程载入该客户任务至一Redis缓存存储器。
7.如权利要求5所述的分布式计算框架的任务调派系统,其特征在于该下载要求于下载该客户任务后创建一任务锁,并遍寻该些Redis服务器中正运行该客户任务的该Redis服务器,并从该下载队列中把该客户任务搬移至该数据加载队列并生成一数据预处理讯息且加入该客户任务中,再添加该数据预处理讯息至该预处理队列中。
8.如权利要求5所述的分布式计算框架的任务调派系统,其特征在于该清洗操作包括读取该客户任务的身份(Identity)、分发到的该Redis服务器、获取该客户任务需要计算的流量、基站字段、用户数字段,该清洗操作后把结果输入至该Redis缓存存储器。
9.如权利要求1所述的分布式计算框架的任务调派系统,其特征在于该业务处理服务包括用户计算、流量计算、时延计算或数据上报。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610074884.4A CN105760221B (zh) | 2016-02-02 | 2016-02-02 | 分布式计算框架的任务调派系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610074884.4A CN105760221B (zh) | 2016-02-02 | 2016-02-02 | 分布式计算框架的任务调派系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105760221A CN105760221A (zh) | 2016-07-13 |
CN105760221B true CN105760221B (zh) | 2018-12-07 |
Family
ID=56329670
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610074884.4A Active CN105760221B (zh) | 2016-02-02 | 2016-02-02 | 分布式计算框架的任务调派系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105760221B (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107784039A (zh) * | 2016-08-31 | 2018-03-09 | 阿里巴巴集团控股有限公司 | 一种数据加载方法、装置及系统 |
CN107959703B (zh) * | 2016-10-18 | 2021-04-16 | 网宿科技股份有限公司 | 数据处理方法、客户端及分布式计算系统 |
CN107066339A (zh) * | 2016-12-14 | 2017-08-18 | 中国航空结算有限责任公司 | 分布式作业管理器及分布式作业管理方法 |
CN106874090A (zh) * | 2017-01-23 | 2017-06-20 | 北京思特奇信息技术股份有限公司 | 基于云系统的作业调度方法和系统 |
CN107092533A (zh) * | 2017-03-29 | 2017-08-25 | 弘成科技发展有限公司 | 基于ActiveMQ+Redis的同步消息队列 |
CN106980509B (zh) * | 2017-04-05 | 2021-01-19 | 智恒科技股份有限公司 | 计算总线的计算方法和装置 |
CN108733461B (zh) * | 2017-04-18 | 2021-09-14 | 北京京东尚科信息技术有限公司 | 分布式任务调度方法和装置 |
CN108874513A (zh) * | 2017-05-11 | 2018-11-23 | 北京京东尚科信息技术有限公司 | 处理定时任务的方法、系统、电子设备和计算机可读介质 |
CN109582466B (zh) * | 2017-09-29 | 2021-05-25 | 北京金山软件有限公司 | 一种定时任务执行方法、分布式服务器集群及电子设备 |
CN107844339B (zh) * | 2017-11-15 | 2021-07-30 | 湖北盛天网络技术股份有限公司 | 任务调度方法及插件和服务器 |
CN107995264B (zh) * | 2017-11-20 | 2021-03-30 | 北京知道未来信息技术有限公司 | 一种基于消息队列的cdn服务验证码分发方法和系统 |
CN109087055B (zh) * | 2018-06-06 | 2022-04-08 | 北京达佳互联信息技术有限公司 | 业务请求的控制方法和装置 |
CN113407633A (zh) * | 2018-09-13 | 2021-09-17 | 华东交通大学 | 一种分布式数据源异构同步的方法 |
CN109408212B (zh) * | 2018-09-28 | 2023-09-19 | 平安科技(深圳)有限公司 | 任务调度组件构造方法、装置及存储介质、服务器 |
CN109558223A (zh) * | 2018-10-11 | 2019-04-02 | 珠海许继芝电网自动化有限公司 | 一种多进程提升工作流部署方法及系统 |
CN110222076A (zh) * | 2019-05-07 | 2019-09-10 | 广州虎牙信息科技有限公司 | 分布式缓存方法、服务器及存储介质 |
CN112765757A (zh) * | 2021-01-21 | 2021-05-07 | 浙江运达风电股份有限公司 | 一种风电机组载荷计算工况设置和分布式计算方法 |
CN117194549B (zh) * | 2023-11-07 | 2024-01-26 | 上海柯林布瑞信息技术有限公司 | 基于任务数据配置的数据传输方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7136972B2 (en) * | 2003-12-30 | 2006-11-14 | Kelvin Kao | Apparatus, system, and method for distributed management in a storage system |
CN103353852A (zh) * | 2013-06-07 | 2013-10-16 | 曲阜师范大学 | 一种虚拟化WebService的IaaS的构建方法 |
CN103793273A (zh) * | 2014-01-24 | 2014-05-14 | 北京京东尚科信息技术有限公司 | 一种基于Redis的分布式队列调度方法及装置 |
CN104778277A (zh) * | 2015-04-30 | 2015-07-15 | 福州大学 | 一种基于Redis的RDF数据分布式存储和查询方法 |
-
2016
- 2016-02-02 CN CN201610074884.4A patent/CN105760221B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN105760221A (zh) | 2016-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105760221B (zh) | 分布式计算框架的任务调派系统 | |
Dobbelaere et al. | Kafka versus RabbitMQ: A comparative study of two industry reference publish/subscribe implementations: Industry Paper | |
CN102456185B (zh) | 一种分布式工作流处理方法及分布式工作流引擎系统 | |
CN108287756A (zh) | 一种处理任务的方法及装置 | |
US10212246B2 (en) | Proxy application with dynamic filter updating | |
CN103092905B (zh) | 使用虚拟文件数据对象的列式数据库 | |
US8555242B2 (en) | Decentralized system services | |
US9354865B2 (en) | System and method for controlling the development of a software application | |
US8073671B2 (en) | Dynamic software performance models | |
CN104601696B (zh) | 服务处理方法、服务调用系统、装置和系统 | |
US8307054B2 (en) | Systems and/or methods for location transparent routing and execution of processes | |
CN110795257A (zh) | 处理多集群作业记录的方法、装置、设备及存储介质 | |
Martin et al. | A novel approach to decentralized workflow enactment | |
JP2009529183A (ja) | 応答出力キャッシュに対するマルチキャッシュ協調 | |
CN103176892A (zh) | 一种页面监控方法及系统 | |
WO2016007679A1 (en) | Virtualized execution across distributed nodes | |
CN110351532A (zh) | 视频大数据云平台云存储服务方法 | |
CN102214094B (zh) | 经由异步编程模型执行操作 | |
Moschoyiannis et al. | True concurrency in long-running transactions for digital ecosystems | |
Shukla | Developing pragmatic data pipelines using apache airflow on Google Cloud Platform | |
Hammas et al. | Adaptive web service composition insuring global QoS optimization | |
US10489404B2 (en) | Macrocosm monitor service platform | |
CN106940660A (zh) | 缓存的实现的方法和装置 | |
CN114239035A (zh) | 基于区块链的协作流程执行系统及其数据访问控制方法 | |
Evangelista | Performance modelling of NoSQL DBMS |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |