CN112328362B - 一种基于容器技术实现函数计算服务的方法 - Google Patents
一种基于容器技术实现函数计算服务的方法 Download PDFInfo
- Publication number
- CN112328362B CN112328362B CN202011221265.6A CN202011221265A CN112328362B CN 112328362 B CN112328362 B CN 112328362B CN 202011221265 A CN202011221265 A CN 202011221265A CN 112328362 B CN112328362 B CN 112328362B
- Authority
- CN
- China
- Prior art keywords
- function
- event
- component
- instance
- service
- 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
-
- 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/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
-
- 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/45595—Network integration; Enabling network access in 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)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种基于容器技术实现函数计算服务的方法,涉及无服务器计算技术领域,该方法基于入口网关组件、Broker/Trigger组件、Activator组件、Sidecar组件,其实现内容包括:使用容器技术构建多租户场景下的函数计算服务,使用入口网关组件接收外部执行函数的事件请求,并按照特定的规则将请求转发,使用Broker/Trigger组件接收并转发函数事件,达到异步处理的功能,使用Activator组件控制请求模式,在函数实例未完全启动时选择代理模式处理事件请求,在函数可以正常提供服务时选择直连模式将请求直接导向函数实例,使用Sidecar组件对单个函数实例进行监控与管理,最终实现事件驱动、按需付费、高可用、自动扩展的多租户函数计算服务。本发明可以优化函数的冷启动,做到快速扩缩容和响应。
Description
技术领域
本发明涉及无服务器计算技术领域,具体的说是一种基于容器技术实现函数计算服务的方法。
背景技术
云计算经历了从IDC->IaaS->PaaS->Serverless/FaaS的发展历程。过去十多年的云计算的历程,其实是一个“去基础架构”的过程。这个过程让用户可以更快速、更简单、更高效地将想法变成应用,变成在线的服务。Serverless架构即“无服务器”架构,它是一种全新的架构方式,是云计算时代一种革命性的架构模式。Serverless让用户可以将关注点放到具体的业务功能上,而不是底层的计算资源上。
在传统的场景里,当用户完成了应用开发后,软件应用将被部署到指定的运行环境,用户会申请一定数量、一定规格(包含一定数量的CPU、内存及存储空间)的服务器以满足该应用的正常运行。当应用上线后,根据实际的运营情况,用户可能会申请更多的服务器资源进行扩容,以应对更高的访问量。在Serverless架构下,情况则截然不同。当用户完成应用开发后,软件应用将被部署到指定的运行环境,这个运行环境不再是具体的一台或多台服务器,而是支持Serverless的云计算平台。有客户端请求到达或特定事件发生时,云计算平台负责将应用部署到某台Serverless云计算平台的主机中。Serverless云计算平台保证该主机提供应用正常运行所需的计算资源。在访问量升高时,云计算平台动态地增加应用的部署实例。当应用空闲一段时间后,云计算平台自动将应用从主机中卸载,并回收资源。
首先要明确的一点是,Serverless是一种软件的架构理念。它的核心思想是让作为计算资源的服务器不再成为用户所关注的一种资源。其目的是提高应用交付的效率,降低应用运营的工作量和成本。但是,要实现Serverless架构的落地,需要一些实实在在的工具和框架作为有力的技术支撑和基础。现有的框架的功能都不够全面,很多框架只是实现了事件驱动、自动扩展、请求分发等部分功能,无法实际用于生产环境;而且,函数代码动态加载、函数冷启动、函数间的安全隔离等问题,也是现在未解决的难题。
发明内容
本发明针对目前技术发展的需求和不足之处,提供一种基于容器技术实现函数计算服务的方法。
本发明的一种基于容器技术实现函数计算服务的方法,解决上述技术问题采用的技术方案如下:
一种基于容器技术实现函数计算服务的方法,基于入口网关组件、Broker/Trigger组件、Activator组件、Sidecar组件,该方法:
使用容器技术构建多租户场景下的函数计算服务,
使用入口网关组件接收外部执行函数的事件,并对事件进行权限校验,校验通过后,按照指定的规则将请求转发,
使用Broker/Trigger组件接收并转发异步事件,
使用Activator组件控制请求模式,在函数实例未完全启动时选择代理模式处理事件请求,在函数可以正常提供服务时选择直连模式将事件直接导向函数实例,
使用Sidecar组件对单个函数实例进行监控与管理,
最终实现事件驱动、按需付费、高可用、自动扩展的多租户函数计算服务。
可选的,所涉及函数计算服务的调用流程为:
(1)由函数计算集群的内部事件源或外部事件源产生事件,产生的事件即为函数调用请求;
(2)事件到达入口网关组件,入口网关组件对事件进行权限校验;
(3)校验通过后,事件直接或间接进入函数计算集群;
(4)事件在函数计算集群内传递,Activator组件根据函数实例是否能正常提供服务控制事件的请求模式,并转发给函数实例,该函数实例由Sidecar组件进行监控与管理。
进一步可选的,所涉及步骤(1)产生的事件分为同步事件和异步事件,
执行步骤(3)时,同步事件通过校验后,直接进入函数计算集群,
异步事件通过校验后,发送至Broker/Trigger组件,进行进一步的分发进入函数计算集群。
进一步可选的,执行步骤(4)时,事件在函数计算集群内的传递分为直连模式和代理模式,
Activator组件根据函数实例正常提供服务时,事件在函数计算集群内选择直连模式,此时,函数计算集群将事件直接转发给函数实例,
Activator组件根据函数实例不能正常提供服务时,事件在函数计算集群内选择代理模式,此时,事件会在Activator组件上进行中转,等待函数实例可以正常处理事件时,再将事件转发给函数实例。
进一步可选的,所涉及Broker/Trigger组件包含了一个用于暂存事件的消息队列,该消息队列使用In Memory Channel内存管道来实现,或者使用开源方案Kafka的消息队列来实现;
异步事件通过校验后,事件通过入口网关组件进入到Broker/Trigger组件的消息队列中,随后函数计算集群内部的事件源就会收到事件成功的返回结果。
进一步可选的,所涉及Broker/Trigger组件接收函数事件,并为每一个租户提供一个指定的URL用来发送事件,如果函数需要消费对应的事件,则需要创建一个Trigger,指定监听某个Broker接收到的事件,并通过事件事件中的Attributes来过滤出自己需要的事件。
进一步可选的,所涉及事件进入函数计算集群后,由Istio提供函数计算集群内流量的管理,流量到达函数之前,函数实例如果还不能正常提供服务,这时Activator组件就会将事件暂时挂起,等待函数实例正常启动后,再将流量导入到函数实例;
在直连模式和代理模式切换的过程中,Activator组件通过修改函数实例的Kubernetes Service对应的Endpoint来实现,其中,直连模式将Endpoint设置为函数实例的IP,代理模式将Endpoint设置为Activator组件的IP。
可选的,所涉及事件到达函数实例后,经过Sidecar组件,Sidecar组件负责对函数实例进行监控与管理,Sidecar组件还负责对函数代码的拉取和更新操作,以及函数超时的控制,最终由用户函数执行并返回结果。
进一步可选的,所涉及事件到达函数实例后,还由Sidecar组件转发至Runtime组件,Runtime组件负责加载函数的运行时,并封装函数的入参,以及处理函数的返回值。
可选的,所涉及入口网关组件基于开源方案Kong已有的网关功能,增加相应的插件实现权限校验功能和请求规则转发功能,其中,
权限校验功能基于HTTP请求的Headers进行,拿到Token与后端接口进行校验,验证通过后方可将流量转入集群内,
请求规则转发功能基于HTTP请求的Path进行。
本发明的一种基于容器技术实现函数计算服务的方法,与现有技术相比具有的有益效果是:
本发明基于容器技术,结合入口网关组件、Broker/Trigger组件、Activator组件、Sidecar组件,可以实现函数流量的统一管理、分发,实现函数访问的统一鉴权、监控,实现函数间的安全隔离,实现函数的快速响应,最终实现事件驱动、按需付费、高可用、自动扩展的多租户函数计算服务。
附图说明
附图1是本发明的方法流程示意图;
附图2是本发明中事件到达函数实例内部后的处理流程图。
具体实施方式
为使本发明的技术方案、解决的技术问题和技术效果更加清楚明白,以下结合具体实施例,对本发明的技术方案进行清楚、完整的描述。
实施例一:
本实施例提出一种基于容器技术实现函数计算服务的方法,该方法基于入口网关组件、Broker/Trigger组件、Activator组件、Sidecar组件,具体实现内容包括:
使用容器技术构建多租户场景下的函数计算服务,
使用入口网关组件接收外部执行函数的事件,并对事件进行权限校验,校验通过后,按照指定的规则将请求转发,
使用Broker/Trigger组件接收并转发异步事件,
使用Activator组件控制请求模式,在函数实例未完全启动时选择代理模式处理事件请求,在函数可以正常提供服务时选择直连模式将事件直接导向函数实例,
使用Sidecar组件对单个函数实例进行监控与管理,
最终实现事件驱动、按需付费、高可用、自动扩展的多租户函数计算服务。
针对上述实现内容,结合附图1,本实施例所涉及函数计算服务的调用流程为:
(1)由函数计算集群的内部事件源或外部事件源产生事件,产生的事件即为函数调用请求。
(2)事件到达入口网关组件,入口网关组件对事件进行权限校验。本实施例中,所涉及入口网关组件基于开源方案Kong已有的网关功能,增加相应的插件实现权限校验功能和请求规则转发功能,其中:权限校验功能基于HTTP请求的Headers进行,拿到Token与后端接口进行校验,验证通过后方可将流量转入集群内,请求规则转发功能基于HTTP请求的Path进行。
(3)事件可以是同步事件/异步事件,
(3a)若同步事件通过校验后,直接进入函数计算集群,执行步骤(4);
(3b)若异步事件通过校验后,发送至Broker/Trigger组件,进行进一步的分发进入函数计算集群,执行步骤(4)。
本实施例的Broker/Trigger组件包含了一个用于暂存事件的消息队列,该消息队列使用In Memory Channel内存管道来实现,或者使用开源方案Kafka的消息队列来实现。此时,异步事件通过校验后,事件通过入口网关组件进入到Broker/Trigger组件的消息队列中,随后函数计算集群内部的事件源就会收到事件成功的返回结果。
本实施例执行上述步骤时,所涉及Broker/Trigger组件接收函数事件,并为每一个租户提供一个指定的URL用来发送事件,如果函数需要消费对应的事件,则需要创建一个Trigger,指定监听某个Broker接收到的事件,并通过事件中的Attributes来过滤出自己需要的事件。
(4)事件在函数计算集群内传递,Activator组件根据函数实例是否能正常提供服务控制事件的请求模式:直连模式或代理模式,
(4a)若事件在函数计算集群内选择直连模式时,函数计算集群将事件直接转发给函数实例,该函数实例由Sidecar组件进行监控与管理;
(4b)若事件在函数计算集群内选择代理模式时,事件会在Activator组件上进行中转,等待函数实例可以正常处理事件时,再将事件转发给函数实例,该函数实例由Sidecar组件进行监控与管理。
本实施例执行上述步骤时,所涉及事件进入函数计算集群后,由Istio提供函数计算集群内流量的管理,流量到达函数之前,函数实例如果还不能正常提供服务,这时Activator组件就会将事件暂时挂起,等待函数实例正常启动后,再将流量导入到函数实例。
在直连模式和代理模式切换的过程中,Activator组件通过修改函数实例的Kubernetes Service对应的Endpoint来实现,其中,直连模式将Endpoint设置为函数实例的IP,代理模式将Endpoint设置为Activator组件的IP。
本实施例执行上述步骤时,结合附图2,所涉及事件到达函数实例后,经过Sidecar组件,Sidecar组件负责对函数实例进行监控与管理,Sidecar组件还负责对函数代码的拉取和更新操作,以及函数超时的控制,最终由用户函数执行并返回结果。
结合附图2,所涉及事件到达函数实例后,还由Sidecar组件转发至Runtime组件,Runtime组件负责加载函数的运行时,并封装函数的入参,以及处理函数的返回值。
综上可知,采用本发明的一种基于容器技术实现函数计算服务的方法,可以实现函数流量的统一管理、分发,实现函数访问的统一鉴权、监控,实现函数间的安全隔离,实现函数的快速响应。
以上应用具体个例对本发明的原理及实施方式进行了详细阐述,这些实施例只是用于帮助理解本发明的核心技术内容。基于本发明的上述具体实施例,本技术领域的技术人员在不脱离本发明原理的前提下,对本发明所作出的任何改进和修饰,皆应落入本发明的专利保护范围。
Claims (9)
1.一种基于容器技术实现函数计算服务的方法,其特征在于,基于入口网关组件、Broker/Trigger组件、Activator组件、Sidecar组件,该方法:
使用容器技术构建多租户场景下的函数计算服务,
使用入口网关组件接收外部执行函数的事件,所述事件分为同步事件和异步事件,对事件进行权限校验,校验通过后,按照指定的规则将请求转发,
同步事件直接进入函数计算集群,异步事件由Broker/Trigger组件分发后进入函数计算集群,
使用Activator组件控制请求模式,在函数实例未完全启动时选择代理模式处理事件,代理模式处理事件时,事件会在Activator组件上进行中转,等待函数实例可以正常处理事件时,再将事件转发给函数实例,在函数可以正常提供服务时选择直连模式将事件直接导向函数实例,
使用Sidecar组件对单个函数实例进行监控与管理,
最终实现事件驱动、按需付费、高可用、自动扩展的多租户函数计算服务。
2.根据权利要求1所述的一种基于容器技术实现函数计算服务的方法,其特征在于,函数计算服务的调用流程为:
(1)由函数计算集群的内部事件源或外部事件源产生事件,产生的事件即为函数调用请求;
(2)事件到达入口网关组件,入口网关组件对事件进行权限校验;
(3)校验通过后,事件直接或间接进入函数计算集群;
(4)事件在函数计算集群内传递,Activator组件根据函数实例是否能正常提供服务控制事件的请求模式,并转发给函数实例,该函数实例由Sidecar组件进行监控与管理。
3.根据权利要求2所述的一种基于容器技术实现函数计算服务的方法,其特征在于,执行步骤(4)时,事件在函数计算集群内的传递分为直连模式和代理模式,
Activator组件根据函数实例正常提供服务时,事件在函数计算集群内选择直连模式,此时,函数计算集群将事件直接转发给函数实例,
Activator组件根据函数实例不能正常提供服务时,事件在函数计算集群内选择代理模式。
4.根据权利要求3所述的一种基于容器技术实现函数计算服务的方法,其特征在于,所述Broker/Trigger组件包含了一个用于暂存事件的消息队列,该消息队列使用In MemoryChannel内存管道来实现,或者使用开源方案Kafka的消息队列来实现;
异步事件通过校验后,事件通过入口网关组件进入到Broker/Trigger组件的消息队列中,随后函数计算集群内部的事件源就会收到事件成功的返回结果。
5.根据权利要求4所述的一种基于容器技术实现函数计算服务的方法,其特征在于,所述Broker/Trigger组件接收函数事件,并为每一个租户提供一个指定的URL用来发送事件,如果函数需要消费对应的事件,则需要创建一个Trigger,指定监听某个Broker接收到的事件,并通过事件中的Attributes来过滤出自己需要的事件。
6.根据权利要求5所述的一种基于容器技术实现函数计算服务的方法,其特征在于,事件进入函数计算集群后,由Istio提供函数计算集群内流量的管理,流量到达函数之前,函数实例如果还不能正常提供服务,这时Activator组件就会将事件暂时挂起,等待函数实例正常启动后,再将流量导入到函数实例;
在直连模式和代理模式切换的过程中,Activator组件通过修改函数实例的Kubernetes Service对应的Endpoint来实现,其中,直连模式将Endpoint设置为函数实例的IP,代理模式将Endpoint设置为Activator组件的IP。
7.根据权利要求6所述的一种基于容器技术实现函数计算服务的方法,其特征在于,事件到达函数实例后,经过Sidecar组件,Sidecar组件负责对函数实例进行监控与管理,Sidecar组件还负责对函数代码的拉取和更新操作,以及函数超时的控制,最终由用户函数执行并返回结果。
8.根据权利要求7所述的一种基于容器技术实现函数计算服务的方法,其特征在于,事件到达函数实例后,还由Sidecar组件转发至Runtime组件,Runtime组件负责加载函数的运行时,并封装函数的入参,以及处理函数的返回值。
9.根据权利要求1或2所述的一种基于容器技术实现函数计算服务的方法,其特征在于,所述入口网关组件基于开源方案Kong已有的网关功能,增加相应的插件实现权限校验功能和请求规则转发功能,其中,
权限校验功能基于HTTP请求的Headers进行,拿到Token与后端接口进行校验,验证通过后方可将流量转入集群内,
请求规则转发功能基于HTTP请求的Path进行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011221265.6A CN112328362B (zh) | 2020-11-03 | 2020-11-03 | 一种基于容器技术实现函数计算服务的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011221265.6A CN112328362B (zh) | 2020-11-03 | 2020-11-03 | 一种基于容器技术实现函数计算服务的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112328362A CN112328362A (zh) | 2021-02-05 |
CN112328362B true CN112328362B (zh) | 2023-03-28 |
Family
ID=74316004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011221265.6A Active CN112328362B (zh) | 2020-11-03 | 2020-11-03 | 一种基于容器技术实现函数计算服务的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112328362B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113300985B (zh) * | 2021-03-30 | 2023-04-07 | 阿里巴巴(中国)有限公司 | 数据处理方法、装置、设备和存储介质 |
CN113805965B (zh) * | 2021-09-11 | 2023-12-29 | 济南浪潮数据技术有限公司 | 一种外部插件安装的方法、装置、设备及可读介质 |
CN114035887A (zh) * | 2021-10-13 | 2022-02-11 | 北京能科瑞元数字技术有限公司 | 基于容器技术的微服务一站式管控平台 |
CN114489931B (zh) * | 2021-12-24 | 2024-09-27 | 天翼云科技有限公司 | 一种函数实例的容器创建方法及系统 |
CN115361359A (zh) * | 2022-08-18 | 2022-11-18 | 中电云数智科技有限公司 | 一种基于kubernetes的IP地址管理装置和方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108418862A (zh) * | 2018-01-31 | 2018-08-17 | 金蝶软件(中国)有限公司 | 基于人工智能服务云平台的微服务管理方法和系统 |
CN111767157A (zh) * | 2019-08-07 | 2020-10-13 | 北京京东尚科信息技术有限公司 | 基于服务网格的请求处理方法和装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019090523A1 (zh) * | 2017-11-08 | 2019-05-16 | 华为技术有限公司 | 一种无服务器架构下业务部署的方法和函数管理平台 |
CN110162413B (zh) * | 2018-02-12 | 2021-06-04 | 华为技术有限公司 | 事件驱动方法及装置 |
US11055192B2 (en) * | 2018-09-27 | 2021-07-06 | International Business Machines Corporation | Logging implementation in micro-service applications |
-
2020
- 2020-11-03 CN CN202011221265.6A patent/CN112328362B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108418862A (zh) * | 2018-01-31 | 2018-08-17 | 金蝶软件(中国)有限公司 | 基于人工智能服务云平台的微服务管理方法和系统 |
CN111767157A (zh) * | 2019-08-07 | 2020-10-13 | 北京京东尚科信息技术有限公司 | 基于服务网格的请求处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112328362A (zh) | 2021-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112328362B (zh) | 一种基于容器技术实现函数计算服务的方法 | |
US20210311781A1 (en) | Method and system for scalable job processing | |
US9277030B2 (en) | Stream processing using a client-server architecture | |
WO2021088641A1 (zh) | 数据发送方法、处理方法、接收方法及其设备、存储介质 | |
US20180109600A1 (en) | Server-processor hybrid system for processing data | |
CN105183470B (zh) | 一种自然语言处理系统化服务平台 | |
CN113703997A (zh) | 集成多种消息代理的双向异步通信中间件系统及实现方法 | |
CN115550354A (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
WO2023087766A1 (zh) | 双系统通信方法、装置、电子设备及计算机可读存储介质 | |
CN113965628A (zh) | 消息调度方法、服务器和存储介质 | |
WO2022214012A1 (zh) | 实现应用程序的多语言翻译的系统、方法、设备和介质 | |
CN111835797A (zh) | 一种数据处理方法、装置及设备 | |
US20090132582A1 (en) | Processor-server hybrid system for processing data | |
CN114371935A (zh) | 网关处理方法、网关、设备及介质 | |
CN106909368B (zh) | 一种实现快速业务开发的服务端业务层逻辑架构 | |
CN113535371A (zh) | 一种多线程异步加载资源的方法和装置 | |
CN111274047A (zh) | 信息处理方法、终端、系统、计算机设备和存储介质 | |
CN114666640B (zh) | 一种边缘网关接入服务器 | |
CN110287159A (zh) | 一种文件处理方法及装置 | |
CN115396430A (zh) | 云手机管理方法及系统 | |
CN117076057B (zh) | 一种ai服务请求调度的方法、装置、设备及介质 | |
CN115378792B (zh) | 告警处理方法、装置及存储介质 | |
CN101692644B (zh) | 一种应用于数字家庭的数字媒体适配器系统 | |
CN113626210B (zh) | 一种电网运行风险预警信息流转方法及存储系统 | |
CN114697694B (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 |