CN107391278A - 一种基于共享内存的前后端通信方法 - Google Patents
一种基于共享内存的前后端通信方法 Download PDFInfo
- Publication number
- CN107391278A CN107391278A CN201710611429.8A CN201710611429A CN107391278A CN 107391278 A CN107391278 A CN 107391278A CN 201710611429 A CN201710611429 A CN 201710611429A CN 107391278 A CN107391278 A CN 107391278A
- Authority
- CN
- China
- Prior art keywords
- event
- shared drive
- configuration module
- write
- module
- 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.)
- Pending
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/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于共享内存的前后端通信方法,包括:外部配置模块接收事件,在接收完所述事件的全部事件参数后,将全部所述事件参数按照预定结构写入共享内存;内部配置模块从所述共享内存中读取全部所述事件参数,并按照所述事件参数执行对应的操作。在这个通信过程中,只需在外部配置模块将全部事件参数写入共享内存时需要对共享内存进行一次加锁和解锁,在内部配置模块从共享内存中读取全部所述参数时进行第二次加锁和解锁,相较于现有技术中,接收一个事件的不同参数时需要多次写入,每次写入都需要加锁、解锁,而对应每次写入的读取也需要加锁、解锁,大大减少了加锁、解锁的次数,提高了前后端通信的效率。
Description
技术领域
本发明涉及通信技术领域,特别是涉及一种基于共享内存的前后端通信方法。
背景技术
在存储系统中,共享内存是一种普遍采用的前后端通信机制。共享内存是一段物理内存空间,前后端通过连接到共享内存后写入数据、读取数据来实现通信。
共享内存没有同步机制,即不同进程对共享内存的访问与操作是无序的,如果第一个进程没有结束写操作,第二个进程就要读取共享内存,很有可能读到一半数据是错的,一半数据是新的,这样会引起逻辑混乱,为了防止这种混乱,每当一个进程访问共享内存时,都需要加锁、解锁,通过这种加锁、解锁,一个进程在对共享内存进行写操作时,其他进程无法对共享内存进行读/写操作;一个进程在读取共享内存时,其他进程也无法对共享内存进行写操作。前后端在利用共享内存进行通信时,一个事件往往有多个参数,如状态、版本、请求ID、目标ID、数据等,因此处理这个事件往往需要多次写入,也就需要多次加锁、解锁,相应的,读取这些参数也学要多次加锁、解锁,这导致了额外的开销,影响了通信的效率。
因此,如何在前后端通信过程中减少加锁、解锁次数,提高前后端通信的效率,是本领域技术人员需要解决的问题。
发明内容
本发明的目的是提供一种基于共享内存的前后端通信方法,用于在前后端通信过程中减少加锁、解锁次数,提高前后端通信交互的效率。
为解决上述技术问题,本发明提供一种基于共享内存的前后端通信方法,包括:
外部配置模块接收事件,在接收完所述事件的全部事件参数后,将全部所述事件参数按照预定结构写入共享内存;
内部配置模块从所述共享内存中读取全部所述事件参数,并按照所述事件参数执行对应的操作。
优选地,所述按照所述事件参数执行对应的操作可以具体为将所述事件参数发送至与所述事件参数对应的事件处理模块,以完成对所述事件的处理。
优选地,所述事件参数可以包括所述事件的状态、所述事件的版本、所述事件的请求ID、所述事件的目标ID和所述事件的数据。
优选地,在所述内部配置模块将所述事件参数发送至与所述事件参数对应的事件处理模块后,进一步包括:
在所述事件处理模块处理完毕后,所述内部配置模块接收所述事件处理模块发送的事件处理结果,并将所述事件处理结果写入所述共享内存;
所述外部配置模块从所述共享内存中读取所述事件处理结果,并将事件处理结果发送到相应位置。
优选地,在所述外部配置模块将所述事件参数按照预定结构写入共享内存之前,所述外部配置模块向所述共享内存发送用于加锁的请求信号。
优选地,在所述内部配置模块将所述事件处理结果写入所述共享内存之前,还包括:所述内部配置模块向所述共享内存发送用于加锁的请求信号。
优选地,在所述外部配置模块将全部所述事件参数按照预定结构写入共享内存之后,还包括:所述外部配置模块向所述共享内存发送写完成信号以通知所述内部配置模块获取所述参数。
优选地,在所述内部配置模块将所述事件处理结果写入共享内存之后,还包括:所述内部配置模块向所述共享内存发送写完成信号以通知所述外部配置模块获取所述事件处理结果。
优选地,所述事件处理结果具体为事件处理成功信号或事件处理失败信号。
优选地,所述外部配置模块按队列接收所述事件。
本发明提供的基于模块化的前后端通信方法,通过外部配置模块和内部配置模块来管理前后端通信,其中外部配置模块在接收完事件的全部参数后,再将全部事件参数按照预定结构发送至共享内存;内部配置模块再从共享内存中获取所述事件的全部事件参数,并按照所述事件参数执行对应的操作。在这个通信过程中,只需在外部配置模块将全部事件参数写入共享内存时需要对共享内存进行一次加锁和解锁,在内部配置模块从共享内存中读取全部所述参数时进行第二次加锁和解锁,相较于现有技术中,接收一个事件的不同参数时需要多次写入,每次写入都需要加锁、解锁,而对应每次写入的读取也需要加锁、解锁,大大减少了加锁、解锁的次数,提高了前后端通信的效率。
附图说明
为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的第一种基于共享内存的前后端通信方法的流程图;
图2为本发明实施例提供的基于共享内存的前后端通信方法的示意图;
图3为本发明实施例提供的第二种基于共享内存的前后端通信方法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的核心是提供一种基于共享内存的前后端通信方法,用于在基于共享内存的前后端通信过程中减少对共享内存的加锁、解锁次数,从而提高通信效率。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步地详细说明。
图1为本发明实施例提供的第一种基于共享内存的前后端通信方法的流程图;图2为本发明实施例提供的基于共享内存的前后端通信方法的示意图;如图1所示,基于共享内存的通信方法包括:
S10:外部配置模块接收事件,在接收完事件的全部事件参数后,将全部事件参数按照预定结构写入共享内存。
S11:内部配置模块从共享内存中读取全部事件参数,并按照事件参数执行对应的操作。
需要说明的是,外部配置模块101和内部配置模块102实现了对共享内存的分阶段灵活管理应用,其中外部配置模块101用于接收外部输入数据,内部配置模块102用于内部处理验证数据并将数据传入底层进行处理。
在具体实施中,在接收写入之前,应当对共享内存103进行初始化。对于步骤S10来说,外部配置模块101接收输入的事件,一个事件可能具有一系列的数据,按一定结构输入外部配置模块101,而这个事件的输入应有一个起始信号和一个终止信号,外部配置模块101通过这两个信号确认接收完这个事件的全部参数后,再把事件的参数填充入一定的结构中,这里的结构可以定为请求结构和自定义结构,其中请求结构用于存储请求相关的数据,如创建一个缓冲池,而自定义结构用于存储事件中的待办事项,如创建一个多大的、什么类型的缓冲池。相应的,在步骤S11中,在内部配置模块102读取事件的全部参数后,内部配置模块102先处理请求结构中请求相关的数据,判定是接收还是拒绝,如果是接收,再根据自定义结构中的相关数据处理事件。另外,在步骤S10中,外部配置模块101具体可将事件的全部参数写入共享内存103的请求缓存中,这段缓存用于将数据由外部配置模块101传入内部配置模块102,缓存大小可由传入的参数决定,相应的,在步骤S11中,内部配置模块102从请求缓存中读取事件的全部参数。
本实施例所提供的基于共享内存的前后端通信方法,需要在外部配置模块将全部事件参数写入共享内存时需要对共享内存进行一次加锁和解锁,在内部配置模块从共享内存中读取全部所述参数时进行第二次加锁和解锁。这相较于现有技术中,接收一个事件的不同参数时需要多次写入,每次写入都需要加锁、解锁,而对应每次写入的读取也需要加锁、解锁,大大减少了加锁、解锁的次数,提高了前后端通信的效率。
在上述实施例的基础上,步骤S11具体为:
内部配置模块将事件参数发送至与事件参数对应的事件处理模块,以完成对事件的处理。
需要说明的是,事件处理模块301不一定是一个模块,而是至少一个具有事件处理功能的模块。内部配置模块102根据读取到的事件参数中包含的信息选择对应的事件处理模块301,并将事件及其全部参数发送给对应的事件处理模块301以完成对事件的处理。
本实施例明确了内部配置模块按照事件参数执行对应的操作的具体内容为根据事件参数选择对应的事件处理模块去处理事件,这个选择的过程体现了内部配置模块处理验证数据并将数据传入底层进行处理的功能。
在上述实施例的基础上,事件参数具体可以是事件的状态、事件的版本、事件的请求ID、事件的目标ID和事件的数据,内部配置模块102具体地处理这些参数并根据事件的目标ID等选择对应的事件处理模块。
本实施例限定了事件参数的具体内容,待处理的事件参数包括这些具体内容可以得到更好地管理与分配。可以理解的是,除了上述几种参数外,在其他实施例中,还可以包含其它参数,并不代表只有这几种参数。
图3是本发明实施例提供的第二种基于共享内存的前后端通信方法的流程图。如图3所示,在上述实施例的基础上,在第二种具体实施方式中,除了步骤S10和步骤S11外还包括:
S40:在事件处理模块处理完毕后,内部配置模块接收事件处理模块发送的事件处理结果,并将事件处理结果写入共享内存。
S41:外部配置模块从共享内存中读取事件处理结果,并将事件处理结果发送到相应位置。
由于S10和S11与上述实施例相同,因此,本实施例不再赘述。在具体实施中,对于步骤S40来说,内部配置模块102具体可将事件处理结果写入共享内存103的响应缓存中,这段缓存用于将数据由内部配置模块102传入外部配置模块101,缓存大小可由传入的参数决定,相应的,外部配置模块101从响应缓存中读取事件处理结果。在外部配置模块将事件处理结果发送到相应位置后,系统中断,外部配置模块101重新等待接收事件。
本发明实施例所提供的基于共享内存的前后端通信方法在上述实施例的基础上增加了内部配置模块向外部配置模块返回事件处理结果的步骤,这个返回的事件处理结果可以通知外部配置模块进行下一步操作。并且,在这次传递事件处理结果的前后端通信过程中,通过内部配置模块和外部配置模块的分阶段管理,再一次减少了加锁、解锁的次数。
由于共享内存的锁机制规定凡是有进程对共享内存进行读/写操作都要加锁、解锁,所以在本发明实施例的通信过程中,需要在外部配置模块将全部事件参数写入共享内存时需要对共享内存进行一次加锁和解锁,在内部配置模块从共享内存中读取全部所述参数时进行第二次加锁和解锁。因此,在上述实施例的基础上,优选地,在外部配置模块102将事件参数按照预定结构写入共享内存103之前,还包括:外部配置模块101向共享内存103发送用于加锁的请求信号。在内部配置模块102将事件处理结果写入共享内存103之前,还包括:内部配置模块102向共享内存103发送用于加锁的请求信号。
这些用于加锁的信号用于通知共享内存接收写操作,如果被拒绝,模块可以保持等待,并继续发送请求信号。
本实施例中,通过在外部配置模块和内部配置模块对共享内存进行写操作之前向共享内存发送用于加锁的请求信号,相较于直接写入可能出现的写失败从而导致的数据混乱,可以提高通信效率。
为了方便外部配置模块101和内部配置模块102的交互,表示数据可以被其他模块处理,在本发明实施例提供的第一种基于共享内存的通信方法的基础上,在外部配置模块101将全部事件参数按照预定结构写入共享内存103之后,还包括:外部配置模块101向共享内存103发送写完成信号以通知内部配置模块102获取参数。
在具体实施中,内部配置模块102可以定时地或实时地读取共享内存103的请求缓存,当读取到外部配置模块101发送的写完成信号时开始获取请求缓存中的事件参数。
在本发明实施例提供的第二种基于共享内存的通信方法的基础上,在内部配置模块102将事件处理结果写入共享内存103之后,还包括:内部配置模块102向共享内存103发送写完成信号以通知外部配置模块101获取事件处理结果。
在具体实施中,外配置模块101可以定时地或实时地读取共享内存103的响应缓存,当读取到内部配置模块102发送的写完成信号时开始获取响应缓存中的事件处理结果。
本实施例中,通过写完成信号,可以使模块间的数据交互更为流畅,提高通信效率。
需要说明的是,事件处理结果具体为事件处理成功信号或事件处理失败信号,更具体地,如果事件处理失败,信号中还可以包括失败原因。
本实施例限定了事件处理结果的内容,通过事件处理成功信号或时间处理失败信号,使得外部配置模块及时掌握其发送的事件是否被执行,实现了反馈的目的。
另外,基于系统原有的信号传递机制,在本发明中,外部配置模块101是按队列接收事件的,即外部配置模块101只接收队列最前端的事件,而新的事件从队列后端插入。
本实施例,应用了信号传递机制接收事件,使事件处理过程有序进行,防止程序混乱。
以上对本发明所提供的基于共享内存的前后端通信方法进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
Claims (10)
1.一种基于共享内存的前后端通信方法,其特征在于,包括:
外部配置模块接收事件,在接收完所述事件的全部事件参数后,将全部所述事件参数按照预定结构写入共享内存;
内部配置模块从所述共享内存中读取全部所述事件参数,并按照所述事件参数执行对应的操作。
2.根据权利要求1所述的方法,其特征在于,所述按照所述事件参数执行对应的操作具体为:
所述内部配置模块将所述事件参数发送至与所述事件参数对应的事件处理模块,以完成对所述事件的处理。
3.根据权利要求2所述的方法,其特征在于,所述事件参数具体为所述事件的状态、所述事件的版本、所述事件的请求ID、所述事件的目标ID和所述事件的数据。
4.根据权利要求2所述的方法,其特征在于,在所述内部配置模块将所述事件参数发送至与所述事件参数对应的事件处理模块后,进一步包括:
在所述事件处理模块处理完毕后,所述内部配置模块接收所述事件处理模块发送的事件处理结果,并将所述事件处理结果写入所述共享内存;
所述外部配置模块从所述共享内存中读取所述事件处理结果,并将事件处理结果发送到相应位置。
5.根据权利要求1所述的方法,其特征在于,在所述外部配置模块将所述事件参数按照预定结构写入共享内存之前,还包括:
所述外部配置模块向所述共享内存发送用于加锁的请求信号。
6.根据权利要求4所述的方法,其特征在于,在所述内部配置模块将所述事件处理结果写入所述共享内存之前,还包括:
所述内部配置模块向所述共享内存发送用于加锁的请求信号。
7.根据权利要求1所述的方法,其特征在于,在所述外部配置模块将全部所述事件参数按照预定结构写入共享内存之后,还包括:
所述外部配置模块向所述共享内存发送写完成信号以通知所述内部配置模块获取所述参数。
8.根据权利要求4所述的方法,其特征在于,在所述内部配置模块将所述事件处理结果写入共享内存之后,还包括:
所述内部配置模块向所述共享内存发送写完成信号以通知所述外部配置模块获取所述事件处理结果。
9.根据权利要求4所述的方法,其特征在于,所述事件处理结果具体为事件处理成功信号或事件处理失败信号。
10.根据权利要求1所述的方法,其特征在于,所述外部配置模块接收事件具体为:
所述外部配置模块按队列接收所述事件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710611429.8A CN107391278A (zh) | 2017-07-25 | 2017-07-25 | 一种基于共享内存的前后端通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710611429.8A CN107391278A (zh) | 2017-07-25 | 2017-07-25 | 一种基于共享内存的前后端通信方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107391278A true CN107391278A (zh) | 2017-11-24 |
Family
ID=60337239
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710611429.8A Pending CN107391278A (zh) | 2017-07-25 | 2017-07-25 | 一种基于共享内存的前后端通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107391278A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110333954A (zh) * | 2019-04-04 | 2019-10-15 | 平安科技(深圳)有限公司 | 基于django框架的接口调用记录方法、装置、设备及存储介质 |
CN110990161A (zh) * | 2019-11-15 | 2020-04-10 | 北京浪潮数据技术有限公司 | 共享资源访问方法、装置、设备及计算机可读存储介质 |
CN116662039A (zh) * | 2023-07-25 | 2023-08-29 | 菲特(天津)检测技术有限公司 | 基于共享内存的工业信息并行检测方法、装置及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1740978A (zh) * | 2004-08-23 | 2006-03-01 | 华为技术有限公司 | 实现共享内存数据库的方法及内存数据库系统 |
CN101493787A (zh) * | 2009-02-18 | 2009-07-29 | 中兴通讯股份有限公司 | 一种内存操作的管理方法及系统 |
CN102426536A (zh) * | 2011-10-26 | 2012-04-25 | 深圳市亚特尔科技有限公司 | 一种多任务间数据通信的实现方法及系统 |
CN103853620A (zh) * | 2012-11-30 | 2014-06-11 | 华为技术有限公司 | 一种众核处理器进程间相互通信的方法、装置及系统 |
US20160350158A1 (en) * | 2015-05-29 | 2016-12-01 | International Business Machines Corporation | Efficient critical thread scheduling for non-privileged thread requests |
-
2017
- 2017-07-25 CN CN201710611429.8A patent/CN107391278A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1740978A (zh) * | 2004-08-23 | 2006-03-01 | 华为技术有限公司 | 实现共享内存数据库的方法及内存数据库系统 |
CN101493787A (zh) * | 2009-02-18 | 2009-07-29 | 中兴通讯股份有限公司 | 一种内存操作的管理方法及系统 |
CN102426536A (zh) * | 2011-10-26 | 2012-04-25 | 深圳市亚特尔科技有限公司 | 一种多任务间数据通信的实现方法及系统 |
CN103853620A (zh) * | 2012-11-30 | 2014-06-11 | 华为技术有限公司 | 一种众核处理器进程间相互通信的方法、装置及系统 |
US20160350158A1 (en) * | 2015-05-29 | 2016-12-01 | International Business Machines Corporation | Efficient critical thread scheduling for non-privileged thread requests |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110333954A (zh) * | 2019-04-04 | 2019-10-15 | 平安科技(深圳)有限公司 | 基于django框架的接口调用记录方法、装置、设备及存储介质 |
WO2020199469A1 (zh) * | 2019-04-04 | 2020-10-08 | 平安科技(深圳)有限公司 | 基于django框架的接口调用记录方法、装置、设备及存储介质 |
CN110333954B (zh) * | 2019-04-04 | 2024-02-23 | 平安科技(深圳)有限公司 | 基于django框架的接口调用记录方法、装置、设备及存储介质 |
CN110990161A (zh) * | 2019-11-15 | 2020-04-10 | 北京浪潮数据技术有限公司 | 共享资源访问方法、装置、设备及计算机可读存储介质 |
CN116662039A (zh) * | 2023-07-25 | 2023-08-29 | 菲特(天津)检测技术有限公司 | 基于共享内存的工业信息并行检测方法、装置及介质 |
CN116662039B (zh) * | 2023-07-25 | 2024-01-23 | 菲特(天津)检测技术有限公司 | 基于共享内存的工业信息并行检测方法、装置及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105144637B (zh) | 用于交换用户数据的接口装置和方法 | |
DE3114961C2 (zh) | ||
DE19580990C2 (de) | Verfahren und Einrichtung zum Ausführen verzögerter Transaktionen | |
CN107391278A (zh) | 一种基于共享内存的前后端通信方法 | |
US20030110166A1 (en) | Queue management | |
CN106599018A (zh) | 库存操作方法和系统 | |
JPS63168732A (ja) | ノン・ロツキング待ち行列機構 | |
CN106713450A (zh) | 基于读写分离模式的下载提速方法及装置 | |
CN107077390A (zh) | 一种任务处理方法以及网卡 | |
CN106980551A (zh) | 一种进程通信方法及装置 | |
CN107704325A (zh) | 用于进程间传输消息的方法和装置 | |
CN107766127A (zh) | 事务消息处理方法、装置、设备及系统 | |
US5341475A (en) | Method for exchanging messages between a shared memory and communication adapters using an efficient logical protocol | |
US6363076B1 (en) | Phantom buffer for interfacing between buses of differing speeds | |
CN108632166A (zh) | 一种基于dpdk的收包二级缓存方法及系统 | |
DE102020118205A1 (de) | Verfahren und einrichtungen zum implementieren mehrerer inferenz-rechen-engines | |
CN106168932A (zh) | 一种Flash控制方法及装置 | |
WO2003019350A1 (en) | Buffer system with sequential and non-sequential block access | |
US9459910B1 (en) | Controlling a layered driver | |
CN112235204B (zh) | 一种数据上报方法、系统、电子设备和存储介质 | |
JPH02501780A (ja) | インターロッキング管理 | |
CN106708779A (zh) | 一种服务器及其处理数据的方法 | |
CN106407307A (zh) | 一种分布式数据库节点数据交互方法及装置 | |
CN110825432B (zh) | 一种数据传递方法及装置 | |
JP2005507522A (ja) | 分散コンピューティングにおける順次整合性を保証する方法およびシステム |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171124 |