CN111752720B - Asynchronous request disguising synchronous request method - Google Patents
Asynchronous request disguising synchronous request method Download PDFInfo
- Publication number
- CN111752720B CN111752720B CN202010615668.2A CN202010615668A CN111752720B CN 111752720 B CN111752720 B CN 111752720B CN 202010615668 A CN202010615668 A CN 202010615668A CN 111752720 B CN111752720 B CN 111752720B
- Authority
- CN
- China
- Prior art keywords
- class
- result
- asynchronous
- processing
- isdone
- 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- 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/547—Remote procedure calls [RPC]; Web services
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
The invention relates to the field of asynchronous request calling, and provides an asynchronous request disguising synchronous request method. The main idea is to make the backend be also an asynchronous request, but masquerade as a synchronous request to the front end, which maintains the consistency of the traffic. The main scheme includes that a front-end page requests a rear-end interface; custom asynchronous executors class, here such custom asynchronous annotation @ Async; defining a class of asynchronous processing results, wherein the class supports a generic T, and the generic T receives a returned result class; defining an isDone method in the asynchronous processing result class, and judging whether the asynchronous method is executed or not through the isDone method; newly building a calling example, and obtaining a corresponding fetching and returning processing result by judging whether the isDone method is executed or not in the example; the front end acquires the processing result, if the processing result is a normal result, the processing result is displayed according to the requirement, if the processing result is abnormal, a single query result requesting method is requested, the execution result is returned, and meanwhile, a friendly prompt appears on the page to prompt the business to wait for tolerance.
Description
Technical Field
The invention relates to the field of asynchronous request calling, and provides an asynchronous request disguising synchronous request method.
Background
While pursuing high efficiency and high speed correspondingly, some applications are used for hugging AI or flow robots, more intelligent things are calculation, model training and anthropomorphic operation, which means that a great deal of operation is carried out behind the intelligent things, which means long time consumption, so that some api interfaces provided by the intelligent things are called asynchronously, but service continuity is required on many service scenes, synchronous waiting results are required, and a method for camouflage of asynchronous requests into synchronous request processing is generated based on the scenes;
disclosure of Invention
The invention relates to the field of asynchronous request call, and provides an asynchronous request disguising synchronous request method, which aims to solve the problem that continuity on a service is guaranteed only by waiting for an asynchronous return result when a back-end service is in an asynchronous call mode while the continuity on the service is maintained from top to bottom, and comprises the following steps: the backend is also an asynchronous request, but masquerading as a synchronous request to the front-end, the front-end maintains consistency of traffic while satisfying that the backend must be an asynchronous request.
An asynchronous request masquerading synchronous request method, comprising the following steps:
s1, requesting a rear-end interface by a front-end page;
s2, customizing an asynchronous executor class, wherein the customization asynchronous annotation @ Async is used on a corresponding service processing class, and the effect that the independent thread executes, namely an asynchronous request, can be achieved;
s3, defining a class of asynchronous processing results, wherein the class supports a generic T, and the generic T receives the returned result class;
s4, defining an isDone method in the asynchronous processing result class, and judging whether the asynchronous method is executed or not through the isDone method;
s5, a call example is newly built, and a corresponding fetch and return processing result is obtained in the example by judging whether the isDone method is executed or not;
s6, the front end acquires a processing result, if the processing result is a normal result, the processing result is displayed according to the requirement, if the processing result is abnormal, a single query result requesting method is requested, the method is a compensation mechanism, the execution result is prevented from being returned without asynchronous execution completion, and meanwhile, friendly prompt appears on a page to prompt business tolerance waiting;
and S7, setting the front end and the back end to keep long connection, and avoiding the front end and the back end from requesting timeout interruption.
The technical scheme is as follows: the step S1 includes the steps of:
step 1: creating an API class, and defining a rear-end remote interface URL in the API class;
step 2: calling an interface of a remote back end in a remote RPC mode;
the technical scheme is as follows: the step S2 includes the steps of:
step 1: newly creating a class to obtain a class E of the self-defined asynchronous executor;
step 2: an Async annotation is declared in class E, when the annotation is started by an item, the annotation is automatically injected into a spaying container, and when the container is initialized, a round tangent plane is added on the annotated method by using the spring AOP principle, so that a dynamic agent class E is generated, and a thread is independently started and independently executed;
step 3: creating a service logic processing class A, annotating a B method of the service logic class A by using an @ Async, wherein the B method is executed by a single thread when executed so as to achieve the effect of asynchronous processing, and is a third party API interface requiring asynchronous call;
the technical scheme is as follows: the step S3 includes the steps of:
step 1: creating a Result class Result, wherein the Result is a custom Result public class, and comprises the following steps: returning a code, returning information msg, returning content data, and specially receiving a processing Result by a Result class;
step 2: remotely calling a third party API in a B method in a business logic processing class A annotated by @ Async, setting a processing time length timeout, inquiring an asynchronous callback Result, and if the Result exists, creating a Result to receive the processing Result;
step 3: the processed Result class is managed into E class through the generic T of the self-defined asynchronous executor E class;
step 4: and taking the E class of the self-defined asynchronous executor as a return value of the service logic processing class A, and returning to an upstream call interface.
The technical scheme is as follows: the step S4 includes the steps of:
step 1: defining an isDone method in the E class of the self-defined asynchronous executor, and judging whether the asynchronous processing flow is executed or not through the isDone method;
step 2: the isDone method is false if the result is normally true and if the result is abnormal or the result is empty;
the technical scheme is as follows: the step S5 includes the steps of:
step 1: newly-built class C, class C is to offer RPC service class to the outside, also is the caller of the business logic processing class A at the same time;
step 2: judging whether the Result of asynchronous processing is wire or not by judging an isDone () method of an asynchronous executor E in class C, if so, acquiring a return Result, acquiring a public Result by using a get () method, and returning to the front end;
step 3: the compensation mechanism can set a timeout time to prevent the loop result from being completed or not being completed by asynchronous processing if the loop is needed for the loop removal if the loop is not taken, but it is noted that the compensation mechanism needs a loop number limit to avoid dead loops.
The technical scheme is as follows: the step S6 includes the steps of:
step 1: acquiring a return Result from the front-end page, and acquiring data to be displayed according to requirements if the code is a successful identification code;
step 2: if the code is failure, displaying a failure reason msg;
step 3: if the code is that the data is not acquired, providing an interface special for inquiring the processing result to inquire, and simultaneously displaying friendly prompts on the page to prompt the business to wait for tolerance;
the technical scheme is as follows: the step S7 includes the steps of:
step 1: setting the ginx to maintain a long connection, avoiding a front-end request timeout interrupt, setting the proxy_read_timeout 300 of the ginx.
Because the invention adopts the technical scheme, the invention has the following beneficial effects:
1. the scheme is suitable for a scene that the back-end interface is an asynchronous call third-party api, but a service system needs to synchronously receive results to maintain service continuity;
2. the method is suitable for scenes, can be used for seamlessly accessing various systems, and can be used for:
the system is suitable for scenes of asynchronous call and synchronous call return, and lightweight components can be used only by corresponding scenes, so that each system can be accessed seamlessly, the coupling between the systems can be reduced, and the flexibility and the responsiveness of the service change of the system can be improved.
3. The method has no sense to business operation, and the internal operation is asynchronous call, but the business operation is not divided into a plurality of steps, so that the smoothness and continuity of the business are ensured.
Detailed Description
The present invention will be described in further detail with reference to the following examples in order to make the objects, technical solutions and advantages of the present invention more apparent. It should be understood that the particular embodiments described herein are illustrative only and are not intended to limit the invention, i.e., the embodiments described are merely some, but not all, of the embodiments of the invention.
The detailed description of the embodiments of the invention is not intended to limit the scope of the invention, as claimed, but is merely representative of selected embodiments of the invention. All other embodiments, which can be made by a person skilled in the art without making any inventive effort, are intended to be within the scope of the present invention.
It is noted that relational terms such as "first" and "second", and the like, are used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions. Moreover, the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising one … …" does not exclude the presence of other like elements in a process, method, article, or apparatus that comprises the element.
An asynchronous request masquerading synchronous request method, comprising the following steps:
s1, requesting a rear-end interface by a front-end page;
s2, customizing an asynchronous executor class, wherein the customization asynchronous annotation @ Async is used on a corresponding service processing class, and the effect that the independent thread executes, namely an asynchronous request, can be achieved;
s3, defining a class of asynchronous processing results, wherein the class supports a generic T, and the generic T receives the returned result class;
s4, defining an isDone method in the asynchronous processing result class, and judging whether the asynchronous method is executed or not through the isDone method;
s5, a call example is newly built, and a corresponding fetch and return processing result is obtained in the example by judging whether the isDone method is executed or not;
s6, the front end acquires a processing result, if the processing result is a normal result, the processing result is displayed according to the requirement, if the processing result is abnormal, a single query result requesting method is requested, the method is a compensation mechanism, the execution result is prevented from being returned without asynchronous execution completion, and meanwhile, friendly prompt appears on a page to prompt business tolerance waiting;
and S7, setting the front end and the back end to keep long connection, and avoiding the front end and the back end from requesting timeout interruption.
The technical scheme is as follows: the step S1 includes the steps of:
step 1: creating an API class, and defining a rear-end remote interface URL in the API class;
step 2: calling an interface of a remote back end in a remote RPC mode;
the technical scheme is as follows: the step S2 includes the steps of:
step 1: newly creating a class to obtain a class E of the self-defined asynchronous executor;
step 2: an Async annotation is declared in class E, when the annotation is started by an item, the annotation is automatically injected into a spaying container, and when the container is initialized, a round tangent plane is added on the annotated method by using the spring AOP principle, so that a dynamic agent class E is generated, and a thread is independently started and independently executed;
step 3: creating a service logic processing class A, annotating a B method of the service logic class A by using an @ Async, wherein the B method is executed by a single thread when executed so as to achieve the effect of asynchronous processing, and is a third party API interface requiring asynchronous call;
the technical scheme is as follows: the step S3 includes the steps of:
step 1: creating a Result class Result, wherein the Result is a custom Result public class, and comprises the following steps: returning a code, returning information msg, returning content data, and specially receiving a processing Result by a Result class;
step 2: remotely calling a third party API in a B method in a business logic processing class A annotated by @ Async, setting a processing time length timeout, inquiring an asynchronous callback Result, and if the Result exists, creating a Result to receive the processing Result;
step 3: the processed Result class is managed into E class through the generic T of the self-defined asynchronous executor E class;
step 4: and taking the E class of the self-defined asynchronous executor as a return value of the service logic processing class A, and returning to an upstream call interface.
The technical scheme is as follows: the step S4 includes the steps of:
step 1: defining an isDone method in the E class of the self-defined asynchronous executor, and judging whether the asynchronous processing flow is executed or not through the isDone method;
step 2: the isDone method is false if the result is normally true and if the result is abnormal or the result is empty;
the technical scheme is as follows: the step S5 includes the steps of:
step 1: newly-built class C, class C is to offer RPC service class to the outside, also is the caller of the business logic processing class A at the same time;
step 2: judging whether the Result of asynchronous processing is wire or not by judging an isDone () method of an asynchronous executor E in class C, if so, acquiring a return Result, acquiring a public Result by using a get () method, and returning to the front end;
step 3: the compensation mechanism can set a timeout time to prevent the loop result from being completed or not being completed by asynchronous processing if the loop is needed for the loop removal if the loop is not taken, but it is noted that the compensation mechanism needs a loop number limit to avoid dead loops.
The technical scheme is as follows: the step S6 includes the steps of:
step 1: acquiring a return Result from the front-end page, and acquiring data to be displayed according to requirements if the code is a successful identification code;
step 2: if the code is failure, displaying a failure reason msg;
step 3: if the code is that the data is not acquired, providing an interface special for inquiring the processing result to inquire, and simultaneously displaying friendly prompts on the page to prompt the business to wait for tolerance;
the technical scheme is as follows: the step S7 includes the steps of:
step 1: setting the ginx to maintain a long connection, avoiding a front-end request timeout interrupt, setting the proxy_read_timeout 300 of the ginx.
Claims (7)
1. A method for masquerading synchronous requests by asynchronous requests, comprising the steps of:
s1, requesting a rear-end interface by a front-end page;
step S2, customizing asynchronous executor class, wherein the self-defining asynchronous annotation @ Async is used on the corresponding service processing class, and the effect of executing an independent thread, namely, asynchronously requesting can be achieved;
step S3, defining a class of asynchronous processing results, wherein a generic type T is supported in the class, and the generic type T receives the returned result class;
step S3 comprises the steps of:
step 3.1: creating a Result class Result, wherein the Result is a custom Result public class, and comprises the following steps: returning a code, returning information msg, returning content data, and specially receiving a processing Result by a Result class;
step 3.2: remotely calling a third party API in a B method in a business logic processing class A annotated by @ Async, setting a processing time length timeout, inquiring an asynchronous callback Result, and if the Result exists, creating a Result to receive the processing Result;
step 3.3: the processed Result class is managed into E class through the generic T of the self-defined asynchronous executor E class;
step 3.4: taking the E class of the self-defined asynchronous executor as a return value of the service logic processing class A, and returning to an upstream call interface;
step S4, defining an isDone method in the asynchronous processing result class, and judging whether the asynchronous method is executed or not through the isDone method;
step S5, a call example is newly built, and a corresponding fetch and return processing result is obtained in the example by judging whether the isDone method is executed or not;
step S6, the front end acquires a processing result, if the processing result is a normal result, the processing result is displayed according to the requirement, if the processing result is abnormal, a single query result requesting method is requested, the method is a compensation mechanism, the execution result is prevented from being returned without asynchronous execution completion, and meanwhile, a friendly prompt appears on a page to prompt business tolerance waiting;
and S7, setting the front end and the back end to keep long connection, and avoiding the front end and the back end from requesting timeout interruption.
2. The method of claim 1, wherein said step S1 comprises the steps of:
step 1: creating an API class, and defining a rear-end remote interface URL in the API class;
step 2: and calling an interface of the remote back end in a remote RPC mode.
3. The method of claim 1, wherein said step S2 comprises the steps of:
step 1: newly creating a class to obtain a class E of the self-defined asynchronous executor;
step 2: an Async annotation is declared in class E, when the annotation is started by an item, the annotation is automatically injected into a spaying container, and when the container is initialized, a round tangent plane is added on the annotated method by using the spring AOP principle, so that a dynamic agent class E is generated, and a thread is independently started and independently executed;
step 3: newly-built business logic processing class A, and annotate on B method of business logic class A with @ Async, so that B method can be executed with a single thread when executing, in order to achieve the asynchronous processing effect, B method is a third party API interface requiring asynchronous call.
4. The method of claim 1, wherein said step S4 comprises the steps of:
step 1: defining an isDone method in the E class of the self-defined asynchronous executor, and judging whether the asynchronous processing flow is executed or not through the isDone method;
step 2: the isDone method is false if the result is normally true, if the result is abnormal or if the result is empty.
5. The method of claim 1, wherein said step S5 comprises the steps of:
step 1: newly-built class C, class C is to offer RPC service class to the outside, also is the caller of the business logic processing class A at the same time;
step 2: in the class C, judging whether the Result of asynchronous processing is wire or not by judging an isDone () method of an asynchronous executor E, if so, acquiring a return Result, acquiring a public Result by using a get () method, and returning to the front end.
6. The method of claim 1, wherein said step S6 comprises the steps of:
step 1: acquiring a return Result from the front-end page, and acquiring data to be displayed according to requirements if the code is a successful identification code;
step 2: if the code is failure, displaying a failure reason msg;
step 3: if the code is that the data is not acquired, an interface special for inquiring the processing result is provided for inquiring, and meanwhile, the page displays friendly prompts to prompt the business to wait for tolerance.
7. The method of claim 1, wherein said step S7 comprises the steps of:
step 1: setting the ginx to maintain a long connection, avoiding a front-end request timeout interrupt, setting the proxy_read_timeout 300 of the ginx.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010615668.2A CN111752720B (en) | 2020-06-27 | 2020-06-27 | Asynchronous request disguising synchronous request method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010615668.2A CN111752720B (en) | 2020-06-27 | 2020-06-27 | Asynchronous request disguising synchronous request method |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111752720A CN111752720A (en) | 2020-10-09 |
CN111752720B true CN111752720B (en) | 2023-07-07 |
Family
ID=72678455
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010615668.2A Active CN111752720B (en) | 2020-06-27 | 2020-06-27 | Asynchronous request disguising synchronous request method |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111752720B (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113434582B (en) * | 2021-06-24 | 2023-01-03 | 平安国际智慧城市科技股份有限公司 | Service data processing method and device, computer equipment and storage medium |
CN114928663A (en) * | 2022-06-02 | 2022-08-19 | 蜂助手股份有限公司 | Method and device for recognizing callback message |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009143105A2 (en) * | 2008-05-20 | 2009-11-26 | Raytheon Company | Method and apparatus for providing a synchronous interface for an asynchronous service |
CN109656724A (en) * | 2018-09-27 | 2019-04-19 | 深圳壹账通智能科技有限公司 | Method for processing business, device, equipment and computer readable storage medium |
CN110166730A (en) * | 2019-06-06 | 2019-08-23 | 苏州科达科技股份有限公司 | A kind of request processing method, device, equipment and readable storage medium storing program for executing |
CN110611687A (en) * | 2018-06-15 | 2019-12-24 | 武汉安天信息技术有限责任公司 | Remote procedure call implementation method based on Redis and related device |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7962917B2 (en) * | 2005-03-10 | 2011-06-14 | Microsoft Corporation | System data interfaces, related architectures, print system data interfaces and related print system architectures |
US8065690B2 (en) * | 2005-12-01 | 2011-11-22 | Cisco Technology, Inc. | Method and system for event-based remote procedure call implementation in a distributed computing system |
EP2002335A1 (en) * | 2006-03-31 | 2008-12-17 | British Telecommunications Public Limited Company | Interactive development tool and debugger for web services |
US9043796B2 (en) * | 2011-04-07 | 2015-05-26 | Microsoft Technology Licensing, Llc | Asynchronous callback driven messaging request completion notification |
-
2020
- 2020-06-27 CN CN202010615668.2A patent/CN111752720B/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009143105A2 (en) * | 2008-05-20 | 2009-11-26 | Raytheon Company | Method and apparatus for providing a synchronous interface for an asynchronous service |
CN110611687A (en) * | 2018-06-15 | 2019-12-24 | 武汉安天信息技术有限责任公司 | Remote procedure call implementation method based on Redis and related device |
CN109656724A (en) * | 2018-09-27 | 2019-04-19 | 深圳壹账通智能科技有限公司 | Method for processing business, device, equipment and computer readable storage medium |
CN110166730A (en) * | 2019-06-06 | 2019-08-23 | 苏州科达科技股份有限公司 | A kind of request processing method, device, equipment and readable storage medium storing program for executing |
Non-Patent Citations (3)
Title |
---|
"中小银行事后监督系统的设计与实现";刘嫣如;中国优秀硕士学位论文全文数据库 (信息科技辑);2014年(第10期);I138-606 * |
Klaus v. Gleissenthall 等."Pretend synchrony: synchronous verification of asynchronous distributed programs".《 Proceedings of the ACM on Programming Languages》.2019,第3卷(第POPL期),1-30. * |
Thomas Herault 等."practical scalable consensus for pseudo-synchronous distributed systems".《SC'15》.2015,1-12. * |
Also Published As
Publication number | Publication date |
---|---|
CN111752720A (en) | 2020-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111752720B (en) | Asynchronous request disguising synchronous request method | |
CN108234670B (en) | Zookeeper and netty-based distributed remote calling method | |
WO2016192556A1 (en) | Interface invoking method, device and terminal | |
Walker et al. | Asynchronous remote operation execution in distributed systems | |
US20040068479A1 (en) | Exploiting asynchronous access to database operations | |
US20100070973A1 (en) | Generic wait service: pausing a bpel process | |
WO2015051690A1 (en) | Zookeeper-based information configuration method and device | |
CN111212085A (en) | Internet of things platform synchronous calling method, Internet of things system and network equipment | |
CN104378221A (en) | Asynchronous calling method applied to integrated circuit production line monitoring system | |
KR100772175B1 (en) | Network robot system and communication method in network robot system | |
US7970814B2 (en) | Method and apparatus for providing a synchronous interface for an asynchronous service | |
CN110058926B (en) | Method, apparatus, and computer-readable medium for processing GPU tasks | |
CN112559207A (en) | Method for realizing data interaction between processes based on message queue and shared memory mode | |
CN113065054B (en) | Request processing method, request processing device, electronic equipment and storage medium | |
CN115334155B (en) | Message queue proxy method and device | |
CN110995817B (en) | Request callback method and device and client equipment | |
CN112689248A (en) | Message processing method and system | |
US8756604B2 (en) | Async wrapper handling execution of asynchronous operations for synchronous and asynchronous routines | |
CN108075989B (en) | Extensible protocol-based load balancing network middleware implementation method | |
CN111143085B (en) | Method for realizing multi-application concurrent hardware calling | |
JP3406983B2 (en) | Inter-process message communication method | |
CN110730197A (en) | Service discovery method and system | |
CN113760465A (en) | Transaction execution method, device, server, equipment and storage medium | |
CN114296809B (en) | Object model construction method based on operating system and system call interface thereof | |
CN112948430B (en) | Date data query method and device |
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 |