CN107896230B - 一种支持高并发命令执行通道的*** - Google Patents
一种支持高并发命令执行通道的*** Download PDFInfo
- Publication number
- CN107896230B CN107896230B CN201711434933.1A CN201711434933A CN107896230B CN 107896230 B CN107896230 B CN 107896230B CN 201711434933 A CN201711434933 A CN 201711434933A CN 107896230 B CN107896230 B CN 107896230B
- Authority
- CN
- China
- Prior art keywords
- module
- client
- operation command
- server
- administrator
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供一种支持高并发命令执行通道的***,包括:接收模块、负载均衡模块、连接器模块、发布订阅模块、代理服务端和客户端;所述连接器模块,用于通过所述HTTP接口接收到所述操作命令时,解析所述操作命令,得到具体操作命令信息、需要***作的客户端ID以及管理员ID;再对所述管理员操作权限进行验证;所述代理服务端的配置数量为多个,每个所述代理服务端均包括绑定在一起的代理模块和服务端。优点为:本发明解决了SaltStack上层入口的权限控制弱的问题,并无状态化的实现了其所有的HTTP接口的功能,是一种支持高并发命令执行通道的***,具有高并发命令执行效率高的优点。
Description
技术领域
本发明属于信息处理技术领域,具体涉及一种支持高并发命令执行通道的***。
背景技术
随着互联网公司自建机房规模的不断扩大,服务器集群管理方案的需求越来越大。现有服务器集群管理方案,基本为C/S架构,主要分为两种,即Agent模式和Agentless模式。Agent模式是指:需要在客户端部署agent来完成代理工作。服务端和客户端的通信操作完全由agent负责,主要基于SSL实现通信和认证。Agentless模式是指:无需在客户端部署agent。服务端与客户端通过SSH来通信,服务端直接通过SSH协议来控制客户端的工作执行。
Agent模式具体通过以下方法实现:采用SaltStack集群管理解决方案,基于Python语言实现,结合轻量级消息队列(ZeroMQ)与Python第三方模块(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack和PyYAML等)构建。其中,其中,SaltStack为一种管理工具,允许管理员对多个操作***创建一个一致的管理***,包括VMware vSphere环境。通过部署SaltStack环境,可以实现在成千上万的服务器上执行命令。
其中,SaltStack的操作入口有2个,一个是命令行模式,一个是基于服务端的HTTP的API接口。通过操作入口,向服务端传入对某个客户端相关操作的命令,服务端再通过消息队列与客户端通信,向客户端下发命令,由客户端的agent来执行命令,最后将操作命令的结果通过消息队列返回给服务端,回显给用户。过程如图1所示。在图1中,Salt Master代表:SaltStack的服务端。Salt Minion代表:SaltStack的客户端。
该种技术方案,主要具有以下缺点:
(1)命令下发的入口和服务端绑定,无法做到服务端无状态的扩展,因此,无法适配更大规模的集群。
(2)入口权限控制较弱,不可控制用户操作的客户端对象及可操作的功能。
(3)单台服务端所能管理的客户端数量有限,当客户端增多时,服务端性能会有所影响。
Agentless模式具体通过以下方法实现:采用Ansible集群管理方案,也是基于python开发,使用SSH通信,客户端无需部署Agent。Ansible更适合于小型的服务器集群的管理,对于大型的服务器集群,性能方便是其一大劣势。由于是基于SSH通信,对Windows***的支持也不太友好。
因此,该种技术方案,主要具有以下缺点:
(1)基于SSH通信,当大批量客户端同时操作时,服务端性能存在问题;
(2)对于windows***的支持不好。
发明内容
针对现有技术存在的缺陷,本发明提供一种支持高并发命令执行通道的***,可有效解决上述问题。
本发明采用的技术方案如下:
本发明提供一种支持高并发命令执行通道的***,包括:接收模块、负载均衡模块、连接器模块、发布订阅模块、代理服务端和客户端;
所述接收模块,用于接收管理员下发的操作命令,所述操作命令携带有具体操作命令信息、需要***作的客户端ID以及管理员ID;然后,所述接收模块将所述操作命令发送给所述负载均衡模块;
所述负载均衡模块与若干个连接器模块连接,各个连接器模块为独立并列的模块,所述负载均衡模块基于负载均衡策略,选择最佳的连接器模块,并调用所选择的连接器模块的HTTP接口,将所述操作命令通过所述HTTP接口传入到所选择的所述连接器模块;
所述连接器模块,用于通过所述HTTP接口接收到所述操作命令时,解析所述操作命令,得到具体操作命令信息、需要***作的客户端ID以及管理员ID;然后,所述连接器模块根据所述管理员ID,获取对应的管理员操作权限;再对所述管理员操作权限进行验证,如果验证不通过,则返回拒绝操作的通知消息;如果验证通过,则将所述操作命令发送到所述发布订阅模块;
所述发布订阅模块,用于发布接收到的来自于所述连接器模块的所述操作命令;
所述代理服务端的配置数量为多个,每个所述代理服务端均包括绑定在一起的代理模块和服务端;所有向所述发布订阅模块进行订阅的代理模块,均接收到所述发布订阅模块发布的所述操作命令;然后,所述代理模块解析接收到的所述操作命令,得到需要***作的客户端ID和具体操作命令信息;然后,所述代理模块进一步判断需要***作的客户端是否在自身绑定的服务端的控制权限范围内,如果不是,则忽略接收到的所述操作命令;如果是,所述代理模块将所述需要***作的客户端ID和具体操作命令信息发送给自身绑定的所述服务端;
所述服务端,用于在接收到来自于自身绑定的所述代理模块发送的需要***作的客户端ID和具体操作命令信息后,向需要***作的客户端下发所述具体操作命令信息,使需要***作的客户端执行具体操作命令;当所述需要***作的客户端执行完成所述具体操作命令后,所述服务端得到操作结果,然后,所述服务端将所述操作结果返回给自身绑定的所述代理模块;所述代理模块再调用所述连接器模块的结果收集接口,将所述操作结果直接通过所述结果收集接口返回给所述连接器模块。
优选的,所述连接器模块对所述管理员操作权限进行验证,具体为:
所述连接器模块首先根据所述管理员操作权限,得到管理员可操作的客户端范围,然后,判断所述需要***作的客户端ID是否在所述管理员可操作的客户端范围内,如果不在,则验证不通过;如果在,所述连接器模块进一步根据所述管理员操作权限,得到管理员可执行的操作命令范围,然后,判断所述具体操作命令信息是否在所述管理员可执行的操作命令范围内,如果不在,则验证不通过;如果在,则验证通过。
优选的,所述发布订阅模块为MQ的发布订阅模块。
优选的,所述代理模块还用于:所述代理模块通过与自身绑定的服务端,获得所述服务端控制权限范围内各个客户端的客户端状态监控信息,并将所述客户端状态监控信息发送给所述连接器模块的结果收集接口。
本发明提供的一种支持高并发命令执行通道的***具有以下优点:
本发明解决了SaltStack上层入口的权限控制弱的问题,并无状态化的实现了其所有的HTTP接口的功能,是一种支持高并发命令执行通道的***,具有高并发命令执行效率高的优点。
附图说明
图1为现有技术提供的Agent模式的运行原理图。
图2为本发明提供的一种支持高并发命令执行通道的***的结构示意图。
具体实施方式
为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明提供一种支持高并发命令执行通道的***,参考图2,包括:接收模块、负载均衡模块、连接器模块、发布订阅模块、代理服务端和客户端;
所述接收模块,用于接收管理员下发的操作命令,所述操作命令携带有具体操作命令信息、需要***作的客户端ID以及管理员ID;然后,所述接收模块将所述操作命令发送给所述负载均衡模块;
所述负载均衡模块与若干个连接器模块连接,各个连接器模块为独立并列的模块,所述负载均衡模块基于负载均衡策略,选择最佳的连接器模块,并调用所选择的连接器模块的HTTP接口,将所述操作命令通过所述HTTP接口传入到所选择的所述连接器模块;
所述连接器模块,用于通过所述HTTP接口接收到所述操作命令时,解析所述操作命令,得到具体操作命令信息、需要***作的客户端ID以及管理员ID;然后,所述连接器模块根据所述管理员ID,获取对应的管理员操作权限;再对所述管理员操作权限进行验证,如果验证不通过,则返回拒绝操作的通知消息;如果验证通过,则将所述操作命令发送到所述发布订阅模块;本步骤中,所述连接器模块对所述管理员操作权限进行验证,具体为:所述连接器模块首先根据所述管理员操作权限,得到管理员可操作的客户端范围,然后,判断所述需要***作的客户端ID是否在所述管理员可操作的客户端范围内,例如,调用SaltStack的API来判断需要***作的客户端ID是否在所述管理员可操作的客户端范围内,如果不在,则验证不通过;如果在,所述连接器模块进一步根据所述管理员操作权限,得到管理员可执行的操作命令范围,然后,判断所述具体操作命令信息是否在所述管理员可执行的操作命令范围内,如果不在,则验证不通过;如果在,则验证通过。
所述发布订阅模块,具体为MQ的发布订阅模块,用于发布接收到的来自于所述连接器模块的所述操作命令;
所述代理服务端的配置数量为多个,每个所述代理服务端均包括绑定在一起的代理模块和服务端;所有向所述发布订阅模块进行订阅的代理模块,均接收到所述发布订阅模块发布的所述操作命令;然后,所述代理模块解析接收到的所述操作命令,得到需要***作的客户端ID和具体操作命令信息;然后,所述代理模块进一步判断需要***作的客户端是否在自身绑定的服务端的控制权限范围内,如果不是,则忽略接收到的所述操作命令;如果是,所述代理模块将所述需要***作的客户端ID和具体操作命令信息发送给自身绑定的所述服务端;
所述服务端,用于在接收到来自于自身绑定的所述代理模块发送的需要***作的客户端ID和具体操作命令信息后,向需要***作的客户端下发所述具体操作命令信息,使需要***作的客户端执行具体操作命令;当所述需要***作的客户端执行完成所述具体操作命令后,所述服务端得到操作结果,然后,所述服务端将所述操作结果返回给自身绑定的所述代理模块,具体的,代理模块通过SaltStack的API得到操作结果;所述代理模块再调用所述连接器模块的结果收集接口,将所述操作结果直接通过所述结果收集接口返回给所述连接器模块。
本发明中,所述代理模块还用于:所述代理模块通过与自身绑定的服务端,获得所述服务端控制权限范围内各个客户端的客户端状态监控信息,并将所述客户端状态监控信息发送给所述连接器模块的结果收集接口。
具体的,本发明为多层C/S架构,即服务端-中间代理层-客户端架构。中间代理层到客户端层的通信及控制,使用了SaltStack,满足了对底层命令下发和结果收集的功能要求。本发明自主研发了连接器模块和代理模块,即:Connector模块和Proxy模块。
Connector模块作为命令执行的入口,对外提供无状态的HTTP接口,因此,使入口与服务端分离,解决了入口有服务端结合紧密而无法扩展的问题。为提高并发执行能力,采用Tornado作为WEB框架,为提高QPS使用了其非阻塞的特性,并对客户端的执行权限做了限定。使用Mysql作为后端的数据持久化方案。
Proxy模块调用SaltStack服务端的python-api来与Connector模块交互,主要实现了命令的接收执行、结果的收集及存活客户端(SaltMinion)的汇报功能。Proxy模块由于调用了SaltStack服务端(SaltMaster)的接口,所以必须和SaltStack服务端(SaltMaster)一同部署。
Connector模块与Porxy模块之间的通信为:为确保所有客户端(SaltMinion)都可以收到下发的命令,使用MQ的发布订阅模式。
本发明提供的支持高并发命令执行通道的***,设计特点如下:
(1)连接器模块,即Connector模块,解决了上层的权限控制问题,对管理员操作权限进行双重验证,首先验证需要***作的客户端ID是否在所述管理员可操作的客户端范围内,再验证具体操作命令信息是否在管理员可执行的操作命令范围内,因此,对管理员的范围和功能进行双重权限认证。同时,连接器模块的HTTP接口入口与服务端分离,极大的提高入口QPS。另外,可灵活扩展配置多台并行独立的无状态的连接器模块,前端的负载均衡模块基于负载均衡策略选择最佳连接器模块,由此提高***的扩展性以及并行执行能力。
(2)代理模块,即Proxy模块,与上层模块分离,通过MQ与上层Connector模块链接,可以使上层无状态的扩展。
因此,本发明解决了SaltStack上层入口的权限控制弱的问题,并无状态化的实现了其所有的HTTP接口的功能。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
Claims (4)
1.一种支持高并发命令执行通道的***,其特征在于,包括:接收模块、负载均衡模块、连接器模块、发布订阅模块、代理服务端和客户端;
所述接收模块,用于接收管理员下发的操作命令,所述操作命令携带有具体操作命令信息、需要***作的客户端ID以及管理员ID;然后,所述接收模块将所述操作命令发送给所述负载均衡模块;
所述负载均衡模块与若干个连接器模块连接,各个连接器模块为独立并列的模块,所述负载均衡模块基于负载均衡策略,选择最佳的连接器模块,并调用所选择的连接器模块的HTTP接口,将所述操作命令通过所述HTTP接口传入到所选择的所述连接器模块;
所述连接器模块,用于通过所述HTTP接口接收到所述操作命令时,解析所述操作命令,得到具体操作命令信息、需要***作的客户端ID以及管理员ID;然后,所述连接器模块根据所述管理员ID,获取对应的管理员操作权限;再对所述管理员操作权限进行验证,如果验证不通过,则返回拒绝操作的通知消息;如果验证通过,则将所述操作命令发送到所述发布订阅模块;所述连接器模块,作为命令执行的入口,对外提供无状态的HTTP接口;
所述发布订阅模块,用于发布接收到的来自于所述连接器模块的所述操作命令;
所述代理服务端的配置数量为多个,每个所述代理服务端均包括绑定在一起的代理模块和服务端;所有向所述发布订阅模块进行订阅的代理模块,均接收到所述发布订阅模块发布的所述操作命令;然后,所述代理模块解析接收到的所述操作命令,得到需要***作的客户端ID和具体操作命令信息;然后,所述代理模块进一步判断需要***作的客户端是否在自身绑定的服务端的控制权限范围内,如果不是,则忽略接收到的所述操作命令;如果是,所述代理模块将所述需要***作的客户端ID和具体操作命令信息发送给自身绑定的所述服务端;所述代理模块调用SaltStack服务端的python-api来与所述连接器模块交互,以实现命令的接收执行、结果的收集及存活客户端SaltMinion的汇报功能;
所述服务端,用于在接收到来自于自身绑定的所述代理模块发送的需要***作的客户端ID和具体操作命令信息后,向需要***作的客户端下发所述具体操作命令信息,使需要***作的客户端执行具体操作命令;当所述需要***作的客户端执行完成所述具体操作命令后,所述服务端得到操作结果,然后,所述服务端将所述操作结果返回给自身绑定的所述代理模块;具体的,代理模块通过SaltStack的API得到操作结果;所述代理模块再调用所述连接器模块的结果收集接口,将所述操作结果直接通过所述结果收集接口返回给所述连接器模块。
2.根据权利要求1所述的支持高并发命令执行通道的***,其特征在于,所述连接器模块对所述管理员操作权限进行验证,具体为:
所述连接器模块首先根据所述管理员操作权限,得到管理员可操作的客户端范围,然后,判断所述需要***作的客户端ID是否在所述管理员可操作的客户端范围内,如果不在,则验证不通过;如果在,所述连接器模块进一步根据所述管理员操作权限,得到管理员可执行的操作命令范围,然后,判断所述具体操作命令信息是否在所述管理员可执行的操作命令范围内,如果不在,则验证不通过;如果在,则验证通过。
3.根据权利要求1所述的支持高并发命令执行通道的***,其特征在于,所述发布订阅模块为MQ的发布订阅模块。
4.根据权利要求1所述的支持高并发命令执行通道的***,其特征在于,所述代理模块还用于:所述代理模块通过与自身绑定的服务端,获得所述服务端控制权限范围内各个客户端的客户端状态监控信息,并将所述客户端状态监控信息发送给所述连接器模块的结果收集接口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711434933.1A CN107896230B (zh) | 2017-12-26 | 2017-12-26 | 一种支持高并发命令执行通道的*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711434933.1A CN107896230B (zh) | 2017-12-26 | 2017-12-26 | 一种支持高并发命令执行通道的*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107896230A CN107896230A (zh) | 2018-04-10 |
CN107896230B true CN107896230B (zh) | 2020-04-10 |
Family
ID=61808686
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711434933.1A Active CN107896230B (zh) | 2017-12-26 | 2017-12-26 | 一种支持高并发命令执行通道的*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107896230B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109582315A (zh) * | 2018-10-26 | 2019-04-05 | 北京百度网讯科技有限公司 | 服务私有化方法、装置、计算机设备及存储介质 |
CN110427217B (zh) * | 2019-07-24 | 2021-07-30 | 上海交通大学 | 基于内容的发布订阅***匹配算法轻量级并行方法和*** |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102880475A (zh) * | 2012-10-23 | 2013-01-16 | 上海普元信息技术股份有限公司 | 计算机软件***中基于云计算的实时事件处理***及方法 |
CN107408042A (zh) * | 2014-09-26 | 2017-11-28 | 甲骨文国际公司 | 用于移动应用的高效和直观的数据绑定 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101741850B (zh) * | 2009-12-25 | 2012-05-30 | 北京邮电大学 | 面向混合网络服务的多任务并发执行***及方法 |
CN101848236A (zh) * | 2010-05-06 | 2010-09-29 | 北京邮电大学 | 具有分布式网络架构的实时数据分发***及其工作方法 |
CN103258149A (zh) * | 2012-07-27 | 2013-08-21 | 天津中启创科技有限公司 | 基于云计算的在线阅读***及方法 |
CN104991815B (zh) * | 2015-06-19 | 2019-01-18 | 北京奇虎科技有限公司 | Docker容器的管理方法和*** |
CN105357296B (zh) * | 2015-10-30 | 2018-10-23 | 河海大学 | 一种Docker云平台下弹性缓存*** |
CN105635282B (zh) * | 2015-12-30 | 2018-11-16 | 浪潮(北京)电子信息产业有限公司 | 一种集群管理***与方法 |
CN107104956B (zh) * | 2017-04-13 | 2019-07-26 | 重庆市环境科学研究院 | 一种基于用户优先度的遥感分发方法及*** |
-
2017
- 2017-12-26 CN CN201711434933.1A patent/CN107896230B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102880475A (zh) * | 2012-10-23 | 2013-01-16 | 上海普元信息技术股份有限公司 | 计算机软件***中基于云计算的实时事件处理***及方法 |
CN107408042A (zh) * | 2014-09-26 | 2017-11-28 | 甲骨文国际公司 | 用于移动应用的高效和直观的数据绑定 |
Also Published As
Publication number | Publication date |
---|---|
CN107896230A (zh) | 2018-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10031789B2 (en) | Generic distributed processing for multi-agent systems | |
RU2681351C1 (ru) | Способ и средство управления интеллектуальным устройством для домашнего пользования для загрузки данных, способ и устройство сбора данных, загруженных интеллектуальным устройством для домашнего пользования | |
CN105915633B (zh) | 自动化运维***和方法 | |
CN113742031B (zh) | 节点状态信息获取方法、装置、电子设备及可读存储介质 | |
CN104301130B (zh) | 监控数据采集方法和***及任务分发服务器和采集装置 | |
WO2016045403A1 (zh) | 运行环境的配置方法及装置、*** | |
WO2016065643A1 (zh) | 一种网卡配置方法及资源管理中心 | |
CN111880902A (zh) | 一种pod创建方法、装置、设备及可读存储介质 | |
KR102328938B1 (ko) | 전자 시스템들에서의 로그 데이터의 관리 | |
CN106911648B (zh) | 一种环境隔离方法及设备 | |
CN111625496B (zh) | 分布式文件***在虚拟机环境下的部署方法、装置及设备 | |
CN107896230B (zh) | 一种支持高并发命令执行通道的*** | |
US10206015B2 (en) | System and method for vehicle data communication | |
CN106452873B (zh) | 软件定义网络中的控制方法,控制设备和处理器 | |
CN110476154B (zh) | 用于数据收集的代理服务器设备和方法 | |
CN111625497A (zh) | 一种分布式文件***的部署方法、装置、设备及存储介质 | |
CN107241283B (zh) | 一种跨主机租户的东西向网络流量镜像采集方法 | |
CN108089934B (zh) | 集群管理方法及集群服务器 | |
CN108733384A (zh) | 一种操作***远程批量部署方法和*** | |
CN116634100B (zh) | 一种基于ipc的信息交互方法及*** | |
CN102238571B (zh) | 物联网m2m业务处理的装置、***以及方法 | |
US11108637B1 (en) | Wireless relay consensus for mesh network architectures | |
CN114697334B (zh) | 一种编排任务的执行方法和装置 | |
EP2519884B1 (en) | Communication method, system, and program | |
CN108781215B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |