CN102761545B - 服务处理方法、服务处理器及服务处理系统 - Google Patents
服务处理方法、服务处理器及服务处理系统 Download PDFInfo
- Publication number
- CN102761545B CN102761545B CN201210223010.2A CN201210223010A CN102761545B CN 102761545 B CN102761545 B CN 102761545B CN 201210223010 A CN201210223010 A CN 201210223010A CN 102761545 B CN102761545 B CN 102761545B
- Authority
- CN
- China
- Prior art keywords
- protocol
- decoding
- request
- encoding
- kinematic insert
- 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
Landscapes
- Telephonic Communication Services (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请提供一种服务处理方法、服务处理器及服务处理系统。其中所述服务处理方法包括:向接收端发出第一请求,并注册所述第一请求的第一句柄及第一回调函数;接收所述接收端发出的第一应答信息,并通过所述第一回调函数调用与所述第一句柄关联的被动对象,根据所述被动对象处理所述第一应答信息。本申请实施例通过在服务处理器发送外部服务请求时注册请求的句柄及回调函数,并通过句柄调用关联的被动对象,通过回调函数释放当前处理资源来等待外部服务的应答,有效地减少服务处理器处理资源的占用时间,使得有限的处理资源得到充分利用,并能够显著地提供提高服务处理的效率。
Description
技术领域
本申请涉及通信技术,尤其涉及一种服务处理方法、服务处理器及服务处理系统。
背景技术
在大型计算机系统中,各系统间常常需要进行信息的交互。各系统间进行信息交互时就涉及到各种通讯协议的接入和处理。目前,实现各系统间信息交互通常通过网络服务(Webservice)来实现。网络服务是一种常见的系统间集成方式,其通常是许多应用程序接口(API)所组成的,用以支持网络间不同机器或系统之间的互动操作或访问。
现有技术中,服务端在客户端发出请求时采用注册应答回调机制,以使客户端在等待服务器端返回应答信息时释放客户端当前的处理资源(线程或进程),待客户端接收到服务器返回的应答信息后通过回调机制再次为请求的事件分配资源,以减少处理资源的占用时间,便于客户端将被释放的处理资源分配给其他事件,进而提高客户端的处理效率。而当服务器端需要作为客户端请求外部服务时还是采用传统的阻塞模式,即服务器端发送请求一直到接收到相应地应答信息的整个过程,服务器端的处理资源一直被占用。若服务器端接收到应答信息的延时较短,采用现有技术的服务器端的服务处理效率不会受到太大影响,但当服务器端接收到应答信息的延时较长时,处理资源就会被长时间占用,这样会严重影响服务器端的服务处理效率。
申请内容
本申请的多个方面提供一种服务处理方法、服务处理器及服务处理系统,用以提高网络服务处理效率。
本申请的一方面,提供一种服务处理方法,包括:
向接收端发出第一请求,并注册所述第一请求的第一句柄及第一回调函数;
接收所述接收端发出的第一应答信息,并通过所述第一回调函数调用与所述第一句柄关联的被动对象,根据所述被动对象处理所述第一应答信息。
如上所述的服务处理方法,还包括:
接收所述发送端发出的第二请求,并注册所述第二请求的第二句柄及第二回调函数;
调用与所述第二句柄关联的被动对象,根据所述被动对象处理所述第二请求,并通过所述第二回调函数向所述发送端返回第二应答信息。
所述的服务处理方法,所述被动对象包括协议处理逻辑及所述协议处理逻辑相应的上下文。
如上所述的服务处理方法,还包括:
创建至少一个协议编解码动态插件,所述协议编解码动态插件包括至少一个所述被动对象;相应地,
调用与所述第一句柄关联的被动对象,包括:
对所述第一请求进行第一层协议解析,得出第一解析结果;
判断所述至少一个协议编解码动态插件中是否有与所述第一解析结果对应的所述协议编解码动态插件;
若有,则调用该协议编解码动态插件中与所述第一句柄关联的被动对象;
若无,对所述第一请求进行第二层协议解析,得出第二解析结果,并判断所述至少一个协议编解码动态插件中是否有与所述第二解析结果对应的所述协议编解码动态插件,若有,则调用所述该协议编解码动态插件中与所述第一句柄关联的被动对象,若无,继续对所述第一请求进行第三层协议解析直至所述至少一个协议编解码动态插件中有与解析结果对应的所述协议编解码动态插件为止。
其中,所述第二层协议承载在所述第一层协议之上,所述第三层协议承载在所述第二层协议之上。
如上所述的服务处理方法,
若所述第一层协议为TCP或UDP协议,则所述对所述第一请求进行第一层协议解析,得出第一解析结果,具体为:
解析所述第一请求的TCP或UDP协议的包头特征,若解析出所述包头特征中有协议编解码动态插件信息的注册信息,则得出所述第一解析结果为协议编解码动态插件信息的注册信息;若解析出所述包头特征中没有协议编解码动态插件信息的注册信息,则得出所述第一解析结果为预设信息,该预设信息与任意一个所述协议编解码动态插件都不对应;
若所述第二层协议为HTTP协议,则所述对所述第一请求进行第二层协议解析,得出第二解析结果,具体为:
对所述第一请求进行HTTP协议解析,得出所述第二解析结果为所述第一请求的统一资源标识符。
如上所述的服务处理方法,还包括:
创建至少一个协议编解码动态插件,所述协议编解码动态插件包括至少一个所述被动对象;相应地,
调用与所述第二句柄关联的被动对象,包括:
对所述第二请求进行第一层协议解析,得出第一解析结果;
判断所述至少一个协议编解码动态插件中是否有与所述第一解析结果对应的所述协议编解码动态插件;
若有,则调用该协议编解码动态插件中与所述第二句柄关联的被动对象;
若无,对所述第二请求进行第二层协议解析,得出第二解析结果,并判断所述至少一个协议编解码动态插件中是否有与所述第二解析结果对应的所述协议编解码动态插件,若有,则调用所述该协议编解码动态插件中与所述第二句柄关联的被动对象,若无,继续对所述第二请求进行第三层协议解析直至所述至少一个协议编解码动态插件中有与解析结果对应的所述协议编解码动态插件为止。
其中,所述第二层协议承载在所述第一层协议之上,所述第三层协议承载在所述第二层协议之上。
如上所述的服务处理方法,
若所述第一层协议为TCP或UDP协议,则所述对所述第二请求进行第一层协议解析,得出第一解析结果,具体为:
解析所述第二请求的TCP或UDP协议的包头特征,若解析出所述包头特征中有协议编解码动态插件信息的注册信息,则得出所述第一解析结果为协议编解码动态插件信息的注册信息;若解析出所述包头特征中没有协议编解码动态插件信息的注册信息,则得出所述第一解析结果为预设信息,该预设信息与任意一个所述协议编解码动态插件都不对应;
若所述第二层协议为HTTP协议,则所述对所述第二请求进行第二层协议解析,得出第二解析结果,具体为:
对所述第二请求进行HTTP协议解析,得出所述第二解析结果为所述第二请求的统一资源标识符。
如上所述的服务处理方法,其中,所述创建至少一个协议编解码动态插件,所述协议编解码动态插件包括所述被动对象,包括:
根据协议处理功能,创建至少一个协议编解码动态插件;
将与协议编解码动态插件的协议处理功能相同的所述被动对象与所述协议编解码动态插件进行从属关联设置。
本申请的另一方面,提供一种服务处理器,包括:
发送单元,用于向接收端发出第一请求,并注册所述第一请求的第一句柄及第一回调函数;
第一接收单元,用于接收所述接收端发出的第一应答信息;
存储单元,用于存储被动对象;
处理单元,用于在接收到所述接收端发出的第一应答信息后,通过所述第一回调函数调用与所述第一句柄关联的所述被动对象,根据所述被动对象处理第二请求,所述第二请求为发送端发出的。
如上所述的服务处理器,还包括:
第二接收单元,用于接收所述发送端发出的第二请求,并注册所述第二请求的第二句柄;
所述处理单元,还用于调用与所述第二句柄关联的被动对象,根据所述被动对象处理所述第二请求,并向所述发送端返回携带有处理结果的第二应答信息。
如上所述的服务处理器,还包括:
第三接收单元,用于接收所述发送端发出的第二请求,并注册所述第二请求的第二句柄和第二回调函数;
所述处理单元,还用于通过所述第二回调函数调用与所述第二句柄关联的被动对象,根据所述被动对象处理所述第二请求,并向所述发送端返回携带有处理结果的第二应答信息。
如上所述的服务处理器,还包括:
插件创建单元,用于创建至少一个协议编解码动态插件,所述协议编解码动态插件包括至少一个所述被动对象;
所述处理单元,还用于对所述第一请求进行第一层协议解析,得出第一解析结果;判断所述至少一个协议编解码动态插件中是否有与所述第一解析结果对应的所述协议编解码动态插件,若有,则调用该协议编解码动态插件中与所述第一句柄关联的被动对象;若无,对所述第一请求进行第二层协议解析,得出第二解析结果,并判断所述至少一个协议编解码动态插件中是否有与所述第二解析结果对应的所述协议编解码动态插件,若有,则调用所述该协议编解码动态插件中与所述第一句柄关联的被动对象,若无,继续对所述第一请求进行第三层协议解析直至所述至少一个协议编解码动态插件中有与解析结果对应的所述协议编解码动态插件为止;
其中,所述第二层协议承载在所述第一层协议之上,所述第三层协议承载在所述第二层协议之上。
如上所述的服务处理器,还包括:
插件创建单元,用于创建至少一个协议编解码动态插件,所述协议编解码动态插件包括至少一个所述被动对象;
所述处理单元,还用于对所述第二请求进行第一层协议解析,得出第一解析结果;判断所述至少一个协议编解码动态插件中是否有与所述第一解析结果对应的所述协议编解码动态插件,若有,则调用该协议编解码动态插件中与所述第二句柄关联的被动对象;若无,对所述第二请求进行第二层协议解析,得出第二解析结果,并判断所述至少一个协议编解码动态插件中是否有与所述第二解析结果对应的所述协议编解码动态插件,若有,则调用所述该协议编解码动态插件中与所述第二句柄关联的被动对象,若无,继续对所述第二请求进行第三层协议解析直至所述至少一个协议编解码动态插件中有与解析结果对应的所述协议编解码动态插件为止;
其中,所述第二层协议承载在所述第一层协议之上,所述第三层协议承载在所述第二层协议之上。
如上所述的服务处理器,所述插件创建单元,包括:
创建子单元,用于根据协议处理功能,创建至少一个协议编解码动态插件;
关联关系设置单元,用于将与协议编解码动态插件的协议处理功能相同的所述被动对象与所述协议编解码动态插件进行从属关联设置。
本申请的又一方面,提供一种服务处理器,包括:
至少一个服务接口模块,包括上述的服务处理器,用于提供服务接口,并对接入的接口进行接口协议转换;
至少一个服务组合模块,包括上述的服务处理器,用于根据预设的组合逻辑程序,分别对所述服务接口模块和服务实现模块提供的接口服务和处理服务进行组合以生成新的服务;
至少一个服务实现模块,包括上述的服务处理器,用于提供共享的处理服务;
其中,所述服务接口模块、服务组合模块及服务实现模块通过承载自定义协议两两进行通信。
由上述技术方案可知,本申请实施例提供了一种高效的既向外提供webService的服务处理,又向外部调用webService的服务处理方法、服务处理器和服务处理系统。本申请实施例通过在服务处理器发送外部服务请求时注册请求的句柄(Handle)及回调函数,并通过句柄调用关联的被动对象,通过回调函数释放当前处理资源来等待外部服务的应答,有效地减少服务处理器处理资源的占用时间,使得有限的处理资源得到充分利用,并能够显著地提供提高服务处理的效率。另外,本申请中服务处理器发送请求和等待外部应答的处理方式与现有技术中服务器端处理接收外部服务的请求并返回相应应答的处理方式相同,可有效避免现有技术中服务器端向客户端提供服务和服务器端作为客户端向外部服务提出调用请求的处理方式不同而致使服务器端需要在基于这两种处理方式的处理资源上进行复杂的协同处理问题,进一步地减少了协同处理所需占用的处理资源,进而进一步地提高了服务处理的效率。
附图说明
图1为本申请实施例一提供的服务处理方法的流程示意图;
图2为本申请实施例提供的服务处理方法的一具体实例的一框架示意图;
图3为本申请实施例二提供的服务处理方法的流程示意图;
图4为本申请实施例三提供的服务处理方法的流程示意图;
图5为本申请实施例一提供的服务处理方法的一具体实例的另一框架示意图;
图6为本申请实施例提供的服务处理方法中一具体步骤的一具体实现实例的流程示意图;
图7为本申请实施例提供的服务处理方法中另一具体步骤的一具体实现实例的流程示意图;
图8为本申请实施例提供的服务处理方法中又一具体步骤的一具体实现实例的流程示意图;
图9为本申请实施例提供的服务处理器的结构示意图;
图10为本申请实施例提供的服务处理系统的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1所示,本申请实施例提供的服务处理方法的流程示意图。具体地,如图中所示,所述的服务处理方法包括:
步骤101、向接收端发出第一请求,并注册所述第一请求的第一句柄及第一回调函数。
具体地,服务处理器向接收端发出第一请求,并同时注册所述第一请求的第一句柄及第一回调函数。其中,所述接收端为向所述服务处理器提供服务的外部系统或外部设备。其中,为所述第一请求注册所述第一句柄实质上就是为所述第一请求注册标识。通过注册所述第一回调函数,服务处理器在发出所述第一请求后即可将所述第一请求占用的处理资源释放,以减少处理资源被占用的时间,进而提高所述服务处理器的服务处理效率。更具体地,所述服务处理器可采用现有Linux系统中的ePoll机制,来实现等待应答时释放处理当前请求所占用的处理资源。在本步骤中,所述服务处理器可视为现有技术中的客户端。
步骤102、接收所述接收端发出的第一应答信息,并通过所述第一回调函数调用与所述第一句柄关联的被动对象,根据所述被动对象处理所述第一应答信息。
具体地,所述服务器端发出的第一请求可能是为了处理其他外部系统或设备发出的请求来调用外部服务的。所述服务处理器在接收所述接收端发出的第一应答信息后,通过第一回调函数调用与所述第一句柄关联的被动对象,并根据所述被动对象继续处理所述第二请求。其中,所述被动对象包括协议处理逻辑及所述协议处理逻辑相应的上下文。在实际应用中,所述服务处理器可设置被动对象数据库1,如图2所示。所述被动对象数据库中存储有多个能够实现不同处理需求的被动对象,各被动对象与句柄存在关联关系,以便于所述服务处理器根据句柄调用关联的被动对象。本步骤中,所述服务处理器同时可视为现有技术中的服务器端。
本实施例提供的技术方案通过在服务处理器发送外部服务调用请求时注册请求的句柄及回调函数,并通过句柄调用关联的被动对象,通过回调函数释放当前处理资源来等待外部服务的应答,有效地减少服务处理器处理资源的占用时间,使得有限的处理资源得到充分利用,并能够显著地提供提高服务处理的效率。
进一步地,如图3所示,上述实施例中所述服务处理方法,还包括:
步骤201、接收所述发送端发出的第二请求,并注册所述第二请求的第二句柄。
具体地,服务处理器接收所述发送端发出的第二请求,并同时注册所述第二请求的第二句柄。其中,所述发送端可以是客户端。
步骤202、调用与所述第二句柄关联的被动对象,根据所述被动对象处理所述第二请求,并向所述发送端返回携带有处理结果的第二应答信息。
具体地,服务处理器在接收到所述第二请求后,就会为处理所述第二请求分配处理资源,以调用与所述第二句柄关联的被动对象,并根据所述被动对象处理所述第二请求,最后向所述发送端返回携带有处理结果的第二应答信息。服务处理器在接收到所述第二请求后,会直接利用服务处理器的操作操作系统的套接字(Socket)封装第二请求,并通过所述第二句柄来进行处理资源的分发,即分配相应地处理资源以调用与所述第二句柄关联的被动对象。
以上实现过程仅适用于所述服务处理器通过不同的传输接口接收多个发送端发送的请求的情况。若所述服务处理器通过同一传输接口接收多个发送端发送的请求时,则上述实现过程应该为如下步骤,如图4所示,包括:
步骤301、接收所述发送端发出的第二请求,并注册所述第二请求的第二句柄和第二回调函数。
具体地,服务处理器接收所述发送端发出的第二请求,并同时注册所述第二请求的第二句柄和第二回调函数。由于本实施例适用于多个发送端复用一个传输接口发送请求至所述服务处理器,因此所述服务处理器需要为各请求注册回调函数,以使未及时分发到空闲处理资源的请求释放传输通道资源,待回调函数返回对应的应答信息时再占用传输通道资源。所述服务处理器可采用调度程序(Dispatcher)来进行处理资源的分发。
步骤302、通过所述第二回调函数调用与所述第二句柄关联的被动对象,根据所述被动对象处理所述第二请求,并向所述发送端返回携带有处理结果的第二应答信息。
具体地,所述服务处理器通过所属第二回调函数为所述第二请求分配处理资源,以调用与所述第二句柄关联的被动对象,并根据所述被动对象处理所述第二请求,最后向所述发送端返回携带有处理结果的第二应答信息。
由上述各实施例提供的技术方案可以看出,服务处理器在接收到客户端发出的请求信息时和上述实施例一中服务处理器在发送请求信息时所采用的处理机制相同,即对请求信息进行句柄注册,然后根据句柄调用可共享的被动对象。这种在服务处理器作为服务器端接收请求,同时作为客户端接收应答,都通过调用同一资源池的被动对象处理请求和应答的处理方式,省去了现有技术中需要有多种基于不同处理方式的处理资源之间的协同处理,直接共享被动对象,降低了服务处理的复杂性,进而提高了服务处理的效率。另外,服务处理器释放等待外部调用服务应答所占用的处理资源与现有技术中客户端等待服务器应答时释放处理客户端发出的请求所占用的处理资源的方式相同,即通过回调函数的方式来实现处理资源的释放,直到接收到应答后再次分配处理资源,使得服务处理器完全实现了异步服务处理,提升了服务处理器的并发处理能力,特别是在等待外部服务应答延时较长的情况下。
如图2所示,为本申请实施例一提供的服务处理方法的一具体实例的一框架示意图。如图中所示,处理器(Processor)其可以表征为服务处理器的处理资源池,所述处理资源池中包含多个处理资源。其中,所述处理资源可以具体是线程或进程,下面以线程进行说明。服务处理器实际上有多个线程,线程的数量与处理器的性能相关。处理器的性能越好可提供的线程就越多,处理器性能越差可提供的线程就越少。线程在执行的过程中,会调用被动对象库中的被动对象。所述被动对象是一种数据结构,是可以被线程检索和存取的数据。一个请求或应答被处理完后,所有的处理情况都会被存放在相应的被动对象中。其中所有的处理情况即为所述协议处理逻辑相应的上下文。每次线程被激活时,线程将根据相应地注册句柄调用关联的被动对象。如图中所示,所述的服务处理方法包括:
步骤401、服务处理器接收客户端发出的请求,并注册所述请求的请求句柄。
步骤402、所述服务处理器调用与所述请求句柄关联的被动对象,根据所述被动对象处理所述请求。
步骤403、所述服务处理器在处理所述请求的过程中向外部服务器发出调用请求以协助所述服务处理器处理所述第二请求,并注册所述调用请求的调用句柄及回调函数。
步骤404、所述服务处理器接收所述外部服务器发出的调用应答信息,并通过所述回调函数调用与所述调用句柄关联的被动对象,然后继续根据所述被动对象处理请求。
步骤405、所述服务处理器向所述客户端返回携带有处理结果的应答信息。
再进一步地,上述各实施例中所述的服务处理方法,还包括:
步骤501、创建至少一个协议编解码动态插件,所述协议编解码动态插件包括所述被动对象。
如图5所示,将协议编解码实现为动态库插件2,以实现对接收到的请求或应答作协议分层解析。
相应地,上述实施例一步骤102中,调用与所述第一句柄关联的被动对象,如图6所示,包括:
步骤1021、对所述第一请求进行第一层协议解析,得出第一解析结果。
步骤1022、判断所述至少一个协议编解码动态插件中是否有与所述第一解析结果对应的所述协议编解码动态插件;若有,则调用该协议编解码动态插件中与所述第一句柄关联的被动对象;若无,对所述第一请求进行第二层协议解析,得出第二解析结果,并判断所述至少一个协议编解码动态插件中是否有与所述第二解析结果对应的所述协议编解码动态插件,若有,则调用所述该协议编解码动态插件中与所述第一句柄关联的被动对象,若无,继续对所述第一请求进行第三层协议解析直至所述至少一个协议编解码动态插件中有与解析结果对应的所述协议编解码动态插件为止。
其中,上述各步骤中所述第二层协议承载在所述第一层协议之上,所述第三层协议承载在所述第二层协议之上。
相应地,上述实施例一步骤202中,所述调用与所述第二句柄关联的被动对象同上述所述调用与所述第一句柄关联的被动对象,如图7所示,包括:
步骤2021、对所述第二请求进行第一层协议解析,得出第一解析结果。
步骤2022、判断所述至少一个协议编解码动态插件中是否有与所述第一解析结果对应的所述协议编解码动态插件;若有,则调用该协议编解码动态插件中与所述第二句柄关联的被动对象;若无,对所述第二请求进行第二层协议解析,得出第二解析结果,并判断所述至少一个协议编解码动态插件中是否有与所述第二解析结果对应的所述协议编解码动态插件,若有,则调用所述该协议编解码动态插件中与所述第二句柄关联的被动对象,若无,继续对所述第二请求进行第三层协议解析直至所述至少一个协议编解码动态插件中有与解析结果对应的所述协议编解码动态插件为止。
其中,所述第二层协议承载在所述第一层协议之上,所述第三层协议承载在所述第二层协议之上。
上述两个实施例将协议编解码实现为动态插件,在服务处理过程中对请求或应答作协议分层解析,根据解析结果将请求或应答分发到相应的动态插件来处理。其中,所述协议编解码动态插件可以实现动态加载,独立升级。另外,本实施例提供的技术方案能够最大限度的利用同一台机器的通讯资源,针对不同层次复用通讯端口,使得同一台机器基于同一端口实现不同层次的通讯协议,对需要处理多种协议接入或开放的场景非常有效。
具体地,若所述第一层协议为TCP(TransmissionControlProtocol传输控制协议)或UDP(UserDatagramProtocol,用户数据报协议)协议,则上述实施例中所述对所述第一请求进行第一层协议解析,得出第一解析结果,具体为:
解析所述第一请求的TCP或UDP协议的包头特征,若解析出所述包头特征中有协议编解码动态插件信息的注册信息,则得出所述第一解析结果为协议编解码动态插件信息的注册信息;若解析出所述包头特征中没有协议编解码动态插件信息的注册信息,则得出所述第一解析结果为预设信息,该预设信息与任意一个所述协议编解码动态插件都不对应。
若所述第二层协议为HTTP(HypertextTransferProtocol,超文本传送协议)协议,则上述实施例中所述对所述第一请求进行第二层协议解析,得出第二解析结果,具体为:对所述第一请求进行HTTP协议解析,得出所述第二解析结果为所述第一请求的统一资源标识符。
同样地,若所述第一层协议为TCP或UDP协议,则上述实施例中所述对所述第二请求进行第一层协议解析,得出第一解析结果,具体为:解析所述第二请求的TCP或UDP协议的包头特征,若解析出所述包头特征中有协议编解码动态插件信息的注册信息,则得出所述第一解析结果为协议编解码动态插件信息的注册信息;若解析出所述包头特征中没有协议编解码动态插件信息的注册信息,则得出所述第一解析结果为预设信息,该预设信息与任意一个所述协议编解码动态插件都不对应。
若所述第二层协议为HTTP协议,则上述实施例中所述对所述第二请求进行第二层协议解析,得出第二解析结果,具体为:对所述第二请求进行HTTP协议解析,得出所述第二解析结果为所述第二请求的统一资源标识符。
再进一步地,步骤501、所述创建至少一个协议编解码动态插件,所述协议编解码动态插件包括所述被动对象,如图8所示,包括:
步骤5011、根据协议处理功能,创建至少一个协议编解码动态插件;
步骤5012、将与协议编解码动态插件的协议处理功能相同的所述被动对象与所述协议编解码动态插件进行从属关联设置。
通过上述方案实现协议编解码动态插件的创建,使得被动对象与所述协议编解码动态插件关联,形成协议编解码数据包,可实现以协议编解码数据包为单位的整体加载和升级。这里需要注意的是:在对被动对象与所述协议编解码动态插件进行关联时,可通过预设的工具检查各协议编解码数据包,以避免两个协议编解码数据包之间存在冲突,出现两个包都将处理同一个请求的情况。
如图9所示,本申请实施例提供的服务处理器的结构示意图。本实施例所述的服务处理器可实现上述各实施例中所述的服务处理方法。如图中所示,所述服务处理器包括发送单元3、第一接收单元4、存储单元5和处理单元6。其中所述发送单元3用于向接收端发出第一请求,并注册所述第一请求的第一句柄及第一回调函数。所述第一接收单元4用于接收所述接收端发出的第一应答信息。所述存储单元5用于存储被动对象。所述处理单元6用于在接收到所述接收端发出的第一应答信息后,通过所述第一回调函数调用与所述第一句柄关联的被动对象,根据所述被动对象处理第二请求,所述第二请求为发送端发出的。
本实施例提供的技术方案通过在服务处理器发送外部服务调用请求时注册请求的句柄及回调函数,并通过句柄调用关联的被动对象,通过回调函数释放当前处理资源来等待外部服务的应答,有效地减少服务处理器处理资源的占用时间,使得有限的处理资源得到充分利用,并能够显著地提供提高服务处理的效率。
进一步地,上述实施例一所述的服务处理器还包括第二接收单元。其中,所述第二接收单元用于接收所述发送端发出的第二请求,并注册所述第二请求的第二句柄。相应地上述实施例中所述的处理单元还用于调用与所述第二句柄关联的被动对象,根据所述被动对象处理所述第二请求,并通过所述第二回调函数向所述发送端返回第二应答信息。以上实现过程适用于所述服务处理器通过不同的传输接口接收多个发送端发送的请求的情况。
再进一步地,上述实施例所述的服务处理器还包括第三接收单元。其中,第三接收单元用于接收所述发送端发出的第二请求,并注册所述第二请求的第二句柄和第二回调函数。相应地,上述实施例中所述的处理单元还用于通过所述第二回调函数调用与所述第二句柄关联的被动对象,根据所述被动对象处理所述第二请求,并向所述发送端返回携带有处理结果的第二应答信息。以上实现过程适用于所述服务处理器通过同一传输接口接收多个发送端发送的请求的情况。
由上述各实施例可以看出,服务处理器在接收到客户端发出的请求信息时和上述实施例一中服务处理器在发送请求信息时所采用的处理机制相同,即对请求信息进行句柄注册,然后根据句柄调用可共享的被动对象。这种在服务处理器作为服务器端接收请求,同时作为客户端接收应答,都通过调用同一资源池的被动对象处理请求和应答的处理方式,省去了现有技术中需要有多种基于不同处理方式的处理资源之间的协同处理,直接共享被动对象,降低了服务处理的复杂性,进而提高了服务处理的效率。另外,服务处理器释放等待外部调用服务应答所占用的处理资源与现有技术中客户端等待服务器应答时释放处理客户端发出的请求所占用的处理资源的方式相同,即通过回调函数的方式来实现处理资源的释放,直到接收到应答后再次分配处理资源,使得服务处理器完全实现了异步服务处理,提升了服务处理器的并发处理能力,特别是在等待外部服务应答延时较长的情况下。
更进一步地,上述实施例所述的服务处理器还包括插件创建单元。插件创建单元用于创建至少一个协议编解码动态插件,所述协议编解码动态插件包括至少一个所述被动对象。相应地,上述实施例中所述的处理单元还用于对所述第一请求进行第一层协议解析,得出第一解析结果;判断所述至少一个协议编解码动态插件中是否有与所述第一解析结果对应的所述协议编解码动态插件,若有,则调用该协议编解码动态插件中与所述第一句柄关联的被动对象;若无,对所述第一请求进行第二层协议解析,得出第二解析结果,并判断所述至少一个协议编解码动态插件中是否有与所述第二解析结果对应的所述协议编解码动态插件,若有,则调用所述该协议编解码动态插件中与所述第一句柄关联的被动对象,若无,继续对所述第二请求进行第三层协议解析直至所述至少一个协议编解码动态插件中有与解析结果对应的所述协议编解码动态插件为止。同样地,上述实施例中,所述的所述处理单元还用于对所述第二请求进行第一层协议解析,得出第一解析结果;判断所述至少一个协议编解码动态插件中是否有与所述第一解析结果对应的所述协议编解码动态插件,若有,则调用该协议编解码动态插件中与所述第二句柄关联的被动对象;若无,对所述第二请求进行第二层协议解析,得出第二解析结果,并判断所述至少一个协议编解码动态插件中是否有与所述第二解析结果对应的所述协议编解码动态插件,若有,则调用所述该协议编解码动态插件中与所述第二句柄关联的被动对象,若无,继续对所述第二请求进行第三层协议解析直至所述至少一个协议编解码动态插件中有与解析结果对应的所述协议编解码动态插件为止。其中,所述第二层协议承载在所述第一层协议之上,所述第三层协议承载在所述第二层协议之上。
具体地,上述各实施例中所述插件创建单元包括:创建子单元和关联关系设置单元。其中,创建子单元用于根据协议处理功能,创建至少一个协议编解码动态插件。关联关系设置单元用于将与协议编解码动态插件的协议处理功能相同的所述被动对象与所述协议编解码动态插件进行从属关联设置。
上述实施例中,通过协议编解码动态插件的创建,可实现对接收到的请求或应答作协议分层解析,并能根据需求加载入新的协议编解码动态插件,或对已有的协议编解码动态插件进行更新,以进一步提高服务处理器的服务处理能力及处理效率。
如图10所示,本申请实施例提供的服务处理系统的结构示意图。如图中所示,所述服务处理系统包括至少一个服务接口模块7(ServiceAccess)、至少一个服务组合模块8(ServiceOrchestrator)及至少一个服务实现模块9(ServiceImplementation)。每种模块都采用上述各实施例提供的服务处理方法来开发,只是业务逻辑的实现方式和开发方式不同,以适应不同的需求。具体地,所述服务接口模块7,包括上述实施例中所述的服务处理器,用于提供服务接口,并对接入的接口进行接口协议转换。所述服务组合模块8,包括上述实施例中所述的服务处理器,用于根据预设的组合逻辑程序,分别对所述服务接口模块和服务实现模块提供的接口服务和处理服务进行组合以生成新的服务。所述服务实现模块9,包括上述实施例中所述的服务处理器,用于提供共享的处理服务。所述服务接口模块、服务组合模块及服务实现模块通过承载自定义协议两两进行通信。图10中通过虚拟通信总线以表征各模块之间的通信链路。
这里需要说明的是:上述服务处理系统中,多个所述服务实现模块可以全部或其中的至少一个服务实现模块基于图5中所示的通信方式,分别与其他服务接口模块和服务组合模块直接通信连接,以保证高效率。所述服务实现模块也可以通过服务接口模块与其他模块通信连接。这种服务实现模块通过服务接口模块与其他模块通信连接的方式,主要是针对已有的服务处理系统因各种原因无法采用本实施例提供的系统架构进行改造的情况。
本实施例提供的服务处理系统,不仅能够实现同上述服务处理方法中提到的有益效果外,还能够根据已有的协议处理逻辑组合成新的服务,进一步提高服务处理的能力和效率。
需要说明的是:对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,简称ROM)、随机存取存储器(RandomAccessMemory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (14)
1.一种服务处理方法,其特征在于,包括:
向接收端发出第一请求,并注册所述第一请求的第一句柄及第一回调函数;
接收所述接收端发出的第一应答信息,并通过所述第一回调函数调用与所述第一句柄关联的被动对象,根据所述被动对象处理所述第一应答信息;
所述方法,还包括:创建至少一个协议编解码动态插件,所述协议编解码动态插件包括至少一个所述被动对象;
相应地,调用与所述第一句柄关联的被动对象,包括:
对所述第一请求进行第一层协议解析,得出第一解析结果;
判断所述至少一个协议编解码动态插件中是否有与所述第一解析结果对应的所述协议编解码动态插件;
若有,则调用该协议编解码动态插件中与所述第一句柄关联的被动对象;
若无,对所述第一请求进行第二层协议解析,得出第二解析结果,并判断所述至少一个协议编解码动态插件中是否有与所述第二解析结果对应的所述协议编解码动态插件,若有,则调用所述该协议编解码动态插件中与所述第一句柄关联的被动对象,若无,继续对所述第一请求进行第三层协议解析直至所述至少一个协议编解码动态插件中有与解析结果对应的所述协议编解码动态插件为止;
其中,所述第二层协议承载在所述第一层协议之上,所述第三层协议承载在所述第二层协议之上。
2.根据权利要求1所述的服务处理方法,其特征在于,还包括:
接收发送端发出的第二请求,并注册所述第二请求的第二句柄;
调用与所述第二句柄关联的被动对象,根据所述被动对象处理所述第二请求,并向所述发送端返回携带有处理结果的第二应答信息。
3.根据权利要求1所述的服务处理方法,其特征在于,还包括:
接收发送端发出的第二请求,并注册所述第二请求的第二句柄和第二回调函数;
通过所述第二回调函数调用与所述第二句柄关联的被动对象,根据所述被动对象处理所述第二请求,并向所述发送端返回携带有处理结果的第二应答信息。
4.根据权利要求1至3中任一所述的服务处理方法,其特征在于,所述被动对象包括协议处理逻辑及所述协议处理逻辑相应的上下文。
5.根据权利要求1所述的服务处理方法,其特征在于,
若所述第一层协议为TCP或UDP协议,则所述对所述第一请求进行第一层协议解析,得出第一解析结果,具体为:
解析所述第一请求的TCP或UDP协议的包头特征,若解析出所述包头特征中有协议编解码动态插件信息的注册信息,则得出所述第一解析结果为协议编解码动态插件信息的注册信息;若解析出所述包头特征中没有协议编解码动态插件信息的注册信息,则得出所述第一解析结果为预设信息,该预设信息与任意一个所述协议编解码动态插件都不对应;
若所述第二层协议为HTTP协议,则所述对所述第一请求进行第二层协议解析,得出第二解析结果,具体为:
对所述第一请求进行HTTP协议解析,得出所述第二解析结果为所述第一请求的统一资源标识符。
6.根据权利要求2或3所述的服务处理方法,其特征在于,所述调用与所述第二句柄关联的被动对象,包括:
对所述第二请求进行第一层协议解析,得出第一解析结果;
判断所述至少一个协议编解码动态插件中是否有与所述第一解析结果对应的所述协议编解码动态插件;
若有,则调用该协议编解码动态插件中与所述第二句柄关联的被动对象;
若无,对所述第二请求进行第二层协议解析,得出第二解析结果,并判断所述至少一个协议编解码动态插件中是否有与所述第二解析结果对应的所述协议编解码动态插件,若有,则调用所述该协议编解码动态插件中与所述第二句柄关联的被动对象,若无,继续对所述第二请求进行第三层协议解析直至所述至少一个协议编解码动态插件中有与解析结果对应的所述协议编解码动态插件为止;
其中,所述第二层协议承载在所述第一层协议之上,所述第三层协议承载在所述第二层协议之上。
7.根据权利要求6所述的服务处理方法,其特征在于,
若所述第一层协议为TCP或UDP协议,则所述对所述第二请求进行第一层协议解析,得出第一解析结果,具体为:
解析所述第二请求的TCP或UDP协议的包头特征,若解析出所述包头特征中有协议编解码动态插件信息的注册信息,则得出所述第一解析结果为协议编解码动态插件信息的注册信息;若解析出所述包头特征中没有协议编解码动态插件信息的注册信息,则得出所述第一解析结果为预设信息,该预设信息与任意一个所述协议编解码动态插件都不对应;
若所述第二层协议为HTTP协议,则所述对所述第二请求进行第二层协议解析,得出第二解析结果,具体为:
对所述第二请求进行HTTP协议解析,得出所述第二解析结果为所述第二请求的统一资源标识符。
8.根据权利要求1、2、3、5、7中任一所述的服务处理方法,其特征在于,所述创建至少一个协议编解码动态插件,所述协议编解码动态插件包括所述被动对象,包括:
根据协议处理功能,创建至少一个协议编解码动态插件;
将与所述协议编解码动态插件的协议处理功能相同的所述被动对象与所述协议编解码动态插件进行从属关联设置。
9.一种服务处理器,其特征在于,包括:
发送单元,用于向接收端发出第一请求,并注册所述第一请求的第一句柄及第一回调函数;
第一接收单元,用于接收所述接收端发出的第一应答信息;
存储单元,用于存储被动对象;
处理单元,用于在接收到所述接收端发出的第一应答信息后,通过所述第一回调函数调用与所述第一句柄关联的所述被动对象,根据所述被动对象处理所述第一应答信息;
所述服务处理器,还包括:插件创建单元,用于创建至少一个协议编解码动态插件,所述协议编解码动态插件包括至少一个所述被动对象;
所述处理单元,还用于对所述第一请求进行第一层协议解析,得出第一解析结果;判断所述至少一个协议编解码动态插件中是否有与所述第一解析结果对应的所述协议编解码动态插件,若有,则调用该协议编解码动态插件中与所述第一句柄关联的被动对象;若无,对所述第一请求进行第二层协议解析,得出第二解析结果,并判断所述至少一个协议编解码动态插件中是否有与所述第二解析结果对应的所述协议编解码动态插件,若有,则调用所述该协议编解码动态插件中与所述第一句柄关联的被动对象,若无,继续对所述第一请求进行第三层协议解析直至所述至少一个协议编解码动态插件中有与解析结果对应的所述协议编解码动态插件为止;
其中,所述第二层协议承载在所述第一层协议之上,所述第三层协议承载在所述第二层协议之上。
10.根据权利要求9所述的服务处理器,其特征在于,还包括:
第二接收单元,用于接收发送端发出的第二请求,并注册所述第二请求的第二句柄;
所述处理单元,还用于调用与所述第二句柄关联的被动对象,根据所述被动对象处理所述第二请求,并向所述发送端返回携带有处理结果的第二应答信息。
11.根据权利要求9所述的服务处理器,其特征在于,还包括:
第三接收单元,用于接收所述发送端发出的第二请求,并注册所述第二请求的第二句柄和第二回调函数;
所述处理单元,还用于通过所述第二回调函数调用与所述第二句柄关联的被动对象,根据所述被动对象处理所述第二请求,并向所述发送端返回携带有处理结果的第二应答信息。
12.根据权利要求10或11所述的服务处理器,其特征在于,
所述处理单元,还用于对所述第二请求进行第一层协议解析,得出第一解析结果;判断所述至少一个协议编解码动态插件中是否有与所述第一解析结果对应的所述协议编解码动态插件,若有,则调用该协议编解码动态插件中与所述第二句柄关联的被动对象;若无,对所述第二请求进行第二层协议解析,得出第二解析结果,并判断所述至少一个协议编解码动态插件中是否有与所述第二解析结果对应的所述协议编解码动态插件,若有,则调用所述该协议编解码动态插件中与所述第二句柄关联的被动对象,若无,继续对所述第二请求进行第三层协议解析直至所述至少一个协议编解码动态插件中有与解析结果对应的所述协议编解码动态插件为止;
其中,所述第二层协议承载在所述第一层协议之上,所述第三层协议承载在所述第二层协议之上。
13.根据权利要求9至11任一所述的服务处理器,其特征在于,所述插件创建单元,包括:
创建子单元,用于根据协议处理功能,创建至少一个协议编解码动态插件;
关联关系设置单元,用于将与协议编解码动态插件的协议处理功能相同的所述被动对象与所述协议编解码动态插件进行从属关联设置。
14.一种服务处理系统,包括:
至少一个服务接口模块,包括上述权利要求9或13所述的服务处理器,用于提供服务接口,并对接入的接口进行接口协议转换;
至少一个服务组合模块,包括上述权利要求9或13所述的服务处理器,用于根据预设的组合逻辑程序,分别对所述服务接口模块和服务实现模块提供的接口服务和处理服务进行组合以生成新的服务;
至少一个服务实现模块,包括上述权利要求9或13所述的服务处理器,用于提供共享的处理服务;
其中,所述服务接口模块、服务组合模块及服务实现模块通过承载自定义协议两两进行通信。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210223010.2A CN102761545B (zh) | 2012-06-30 | 2012-06-30 | 服务处理方法、服务处理器及服务处理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210223010.2A CN102761545B (zh) | 2012-06-30 | 2012-06-30 | 服务处理方法、服务处理器及服务处理系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102761545A CN102761545A (zh) | 2012-10-31 |
CN102761545B true CN102761545B (zh) | 2015-11-25 |
Family
ID=47055866
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210223010.2A Active CN102761545B (zh) | 2012-06-30 | 2012-06-30 | 服务处理方法、服务处理器及服务处理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102761545B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106886464A (zh) * | 2015-12-16 | 2017-06-23 | 天脉聚源(北京)科技有限公司 | 一种提高服务器处理并发业务能力的方法和系统 |
CN105721473B (zh) * | 2016-02-24 | 2019-07-09 | 锐达互动科技股份有限公司 | 一种web端远程调用优化的方法及系统 |
CN106302554A (zh) * | 2016-11-08 | 2017-01-04 | 郑州云海信息技术有限公司 | 一种socket通信方法、装置和存储设备 |
CN106686017A (zh) * | 2017-03-21 | 2017-05-17 | 百度在线网络技术(北京)有限公司 | 用于鉴权的方法和装置 |
CN109861998B (zh) * | 2019-01-21 | 2021-06-11 | 成都新橙北斗智联有限公司 | 一种基于北斗短报文协议的插件式动态解析系统及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101196813A (zh) * | 2007-12-26 | 2008-06-11 | 上海科泰世纪科技有限公司 | 计算机软件系统中基于构件接口实现事件回调的方法 |
CN101276296A (zh) * | 2007-03-29 | 2008-10-01 | 上海新跃仪表厂 | 一种在嵌入式计算机系统上实现消息响应机制的方法 |
CN101500333A (zh) * | 2008-02-02 | 2009-08-05 | 德信智能手机技术(北京)有限公司 | 一种基于Windows Mobile平台的扩展RIL PROXY装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8924922B2 (en) * | 2010-06-14 | 2014-12-30 | Microsoft Corporation | Pre-compiling hosted managed code |
-
2012
- 2012-06-30 CN CN201210223010.2A patent/CN102761545B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101276296A (zh) * | 2007-03-29 | 2008-10-01 | 上海新跃仪表厂 | 一种在嵌入式计算机系统上实现消息响应机制的方法 |
CN101196813A (zh) * | 2007-12-26 | 2008-06-11 | 上海科泰世纪科技有限公司 | 计算机软件系统中基于构件接口实现事件回调的方法 |
CN101500333A (zh) * | 2008-02-02 | 2009-08-05 | 德信智能手机技术(北京)有限公司 | 一种基于Windows Mobile平台的扩展RIL PROXY装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102761545A (zh) | 2012-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102761545B (zh) | 服务处理方法、服务处理器及服务处理系统 | |
US20210311781A1 (en) | Method and system for scalable job processing | |
US8417848B2 (en) | Method and apparatus for implementing multiple service processing functions | |
CN102801635B (zh) | 在多核处理器系统中使用的报文保序方法 | |
WO2020036879A1 (en) | In situ triggered function as a service within a service mesh | |
CN114077480B (zh) | 一种主机与虚拟机共享内存方法、装置、设备及介质 | |
CN111556058B (zh) | 会话处理方法及装置 | |
CN107133109B (zh) | 一种模块间通信的方法、装置及计算设备 | |
CN112328362B (zh) | 一种基于容器技术实现函数计算服务的方法 | |
WO2021051881A1 (zh) | Vpp 集群管理方法及装置、计算机设备及存储介质 | |
CN105516086A (zh) | 业务处理方法及装置 | |
CN110532106A (zh) | 进程间的通讯方法、装置、设备和存储介质 | |
CN113127204A (zh) | 一种基于反应堆网络模型处理并发业务的方法和服务器 | |
EP2439881A1 (en) | Cluster system and request message distribution method for processing multi-node transaction | |
CN112104679A (zh) | 处理超文本传输协议请求的方法、装置、设备和介质 | |
CN103299298A (zh) | 处理业务的方法和系统 | |
CN114697888B (zh) | 5g消息处理方法、装置及存储介质 | |
CN102708008A (zh) | 联机下载策略的实现方法 | |
CN113343285B (zh) | 一种执行密文计算指令的方法、装置和密文计算系统 | |
CN102693434B (zh) | 射频识别设备接口层的通信装置及方法 | |
CN112653598B (zh) | 自动化测试方法、装置、设备及可读存储介质 | |
CN111353811B (zh) | 一种资源统一发放方法及系统 | |
CN116136790A (zh) | 任务处理方法和装置 | |
CN114363291A (zh) | 地址分配方法、装置、控制面功能实体及用户面功能实体 | |
CN103561080A (zh) | 无线网络的远程资源服务装置、方法和远程显示服务系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |