CN105893413A - 服务器的服务扩展方法及扩展系统 - Google Patents
服务器的服务扩展方法及扩展系统 Download PDFInfo
- Publication number
- CN105893413A CN105893413A CN201510836647.2A CN201510836647A CN105893413A CN 105893413 A CN105893413 A CN 105893413A CN 201510836647 A CN201510836647 A CN 201510836647A CN 105893413 A CN105893413 A CN 105893413A
- Authority
- CN
- China
- Prior art keywords
- plug
- server
- unit
- service
- event
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种服务器的服务扩展方法及其扩展系统,其特征在于,该扩展方法包括:根据服务器的业务处理流程,对服务器的服务程序进行层级配置,将所述服务程序划分为多个层级;在所述划分的服务程序的多个层级间配置插件,其中,所述插件的类型和业务逻辑根据所述服务器的业务需求确定;在所述服务程序内核中,通过事件驱动和回调机制调用所述插件,执行所述插件中的业务逻辑,以完成所述服务程序的功能扩展。通过本发明的服务器的服务扩展方法及其扩展系统,能够通过事件驱动实现对插件的动态加载,以根据设置的插件实现服务扩展,降低业务扩展时服务器程序开发的难度,提高系统开发效率。
Description
技术领域
本发明实施例涉及服务器上的服务扩展技术领域,尤其涉及一种服务器的服务扩展方法和服务器的服务扩展系统。
背景技术
随着互联网的发展,以及开发技术的不断更新,目前市场上所有的嵌入式硬件产品或其他的软件应用类产品都需要为用户提供一个亲切友好的配置管理界面。而目前的趋势是,市场上大部分产品都采用B/S架构,这就离不开WEB服务器软件的使用。市场上比较常见的是采用成熟的商业方案,如Tomcat+Java,Apache+php等。
但现有的这些服务器虽然成熟,功能齐全,但在需要进行服务扩展时,每增加一种服务都要通过修改整个web服务器的程序来实现,代码重复开发率高,从而导致人力财力的浪费,以及系统开发效率低下。
发明内容
为了解决现有技术中web服务器对每一个增加的服务,都需要进行整体修改,代码重复开发率高、效率低下的问题,本发明实施例一方面提供了一种服务器的服务扩展方法,其特征在于,包括:
根据服务器的业务处理流程,对服务器的服务程序进行层级配置,将所述服务程序划分为多个层级;
在所述划分的服务程序的多个层级间配置插件,其中,所述插件的类型和业务逻辑根据所述服务器的业务需求确定;
在所述服务程序内核中,通过事件驱动和回调机制调用所述插件,执行所述插件中的业务逻辑,以完成所述服务程序的功能扩展。
本发明实施例另一方面提供一种服务器的服务扩展系统,其特征在于,所述系统包括:
层级配置模块,用于根据服务器的业务处理流程,对服务器的服务程序进行层级配置,将所述服务程序划分为多个层级;
插件管理模块,用于在所述划分的服务程序的多个层级间配置插件,其中,所述插件的类型和业务逻辑根据所述服务器的业务需求确定;和
事件驱动模块,用于在服务程序内核中,通过事件驱动和回调机制调用所述插件,执行所述插件中的业务逻辑,以完成所述服务程序的功能扩展。
本发明实施例提供的服务器的服务扩展方法和扩展系统,通过将服务器程序的业务流程划分为不同的层级,在不同的层级间根据业务需求,配置实现自定义业务逻辑的插件,并通过服务器内核的事件驱动逻辑,回调配置的插件,以动态加载插件,从而实现在不改变整个WEB服务器架构的情况对服务程序的功能扩展,降低程序的开发难度,达到根据业务需求,无需修改完整的服务程序内部逻辑,按插件实现的自定义业务逻辑,实现相应扩展功能的效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明中服务器的服务扩展方法的实施例流程图;
图2为以WEB缓存服务器为例的图1所示的方法的实施例流程图;
图3为图2所示的WEB缓存服务器的HTTP请求的业务流程的示例图;
图4为图2所示的WEB缓存服务器的HTTP请求的业务层级配置的示例图;
图5为本发明中服务器的服务扩展系统的框架结构的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明针对WEB服务器每增加一种服务,都需要通过修改整个WEB服务器的程序来实现,代码重复开发率高,从而导致人力物力的浪费以及系统开发效率低下的问题,提出一种服务器的服务扩展方法及其扩展系统。由于,目前高效的服务端程序基本都是采用异步的事件驱动模型开发,在有事件发生时(比如网络事件、磁盘IO等),底层的驱动逻辑将事件通知给上层进行处理。而插件技术在计算机程序的应用,一般基本的思路就是抽象出统一的接口,实现接口时,就可以按照接口的定义来实现具体的逻辑。通过将事件驱动模型和插件技术结合在一起,当需要完成特定功能时,就不需要修改完整的服务程序的内部逻辑,而只需要按照插件接口的定义,实现相应功能就可以。由此,就可以有效提高服务器的服务程序的可扩展能力,降低程序的开发难度,提高效率。
下面结合附图对本发明作进一步详细的说明。
图1示意性地显示了根据本发明的一种实施方式的服务器的服务扩展方法。如图1所示,该方法包括:
步骤S101:根据服务器的业务特点,对服务器的服务程序进行层级配置。
根据服务器的业务处理场景,对服务端程序的处理流程进行梳理,可以根据处理流程,对WEB服务器的服务程序抽象出多个层级。如以WEB缓存服务器为例,其主要的业务处理场景是处理客户端的HTTP请求,然后根据缓存源服务器的响应,当下次客户端请求相同的url时,WEB缓存服务器直接从已保存的缓存内容响应给客户端。在这种业务场景下,WEB缓存服务器主要处理的是HTTP请求、HTTP响应、DNS解析及传输等方面的事务,根据处理的状态转换或流程的数据传输过程就可以对处理客户端的HTTP请求的服务程序进行层级划分(如每个状态转换之间设定为一个层级或这个数据流向之间设置为一个层级等)。其中,层级的配置可以是提供可操作界面或平台给用户,以根据用户需求将业务流程划分为多个层级,也可以是程序自动化实现层级划分,在此不进行限制,能实现发明构思即可。
步骤S102:根据外部请求,在服务程序的不同层级间配置插件,实现定制化的业务逻辑。
划分好层级后,根据业务需求在不同的层级间配置插件。如对于WEB缓存服务器的处理客户端HTTP请求的业务场景的例子,根据业务需求,就可能需要配置黑名单插件,以拒绝不被允许访问的客户端请求;或配置图片转换插件,以将原始源端的JPEG图片转换成GIF图片;或配置收集客户端信息的插件,以从客户端的请求头中获取一些信息,保存到数据库中,供后续的其他模块进行数据分析;或配置认证插件,以检查一个用户是否具有访问指定WEB站点的权限,该插件可能会需要向认证服务器发送一个请求等。根据业务需求,在需要配置插件的层级,定义服务器内核HOOK点事件和回调函数原型,作为在不同的层级间的注册事件,并定义包含注册事件的插件接口。之后,根据外部请求,在相应层级配置用户自定义插件。配置的用户自定义插件都需要实现定义的插件接口,该插件接口需要处理传进来的参数,将用户自定义插件关心的事件(即定义好的服务器内核HOOK点事件)及其对应的回调函数原型,注册到到服务器上。之后,只需要根据用户定制的业务逻辑,在回调函数中进行程序实现即可,而回调函数的具体实现内容就是配置的用户自定义插件的定制化的业务逻辑。配置好插件后,编译插件,并导出插件接口。在具体应用中,服务器就可以根据插件接口,动态加载实现了插件接口的具体插件,并进行相应的初始化操作。
步骤S103:在服务程序内核中,通过事件驱动和回调机制,执行配置的插件,实现服务扩展。
目前高效的服务端程序基本都是采用异步的事件驱动模型开发,即在有事件发生时(比如网络事件或磁盘IO事件等),底层的驱动逻辑通过回调机制(即callback)将事件通知给上层进行处理。驱动模块及主要的通用的逻辑由服务程序内核实现,最简单的事件驱动模型如可以用下述的伪代码来描述:
根据上面的内核的事件驱动逻辑可知,为了使程序能够执行到插件定义的逻辑,设计的插件应该包含注册事件的接口,这样主驱动逻辑在指定的事件发生时,就可以通过回调机制执行到插件所实现的代码逻辑中去。由此,通过事件驱动模型的主驱动逻辑对服务器内核定义的HOOK点事件进行监听,由于插件接口的参数包含对相应事件的处理,而实现插件接口的插件中包括有对HOOK点事件及对应的回调函数的注册,则在相应事件发生时,主驱动逻辑就可以通过回调机制调用实现插件接口的具体插件,通过该具体插件对应的回调函数的业务逻辑,动态加载特定业务功能,实现用户自定义的业务逻辑,以达到通过插件对服务器的服务程序的服务扩展。
通过本实施例的方法,就能够将事件驱动模型和插件技术相结合,以通过事件监听和插件设置,扩展服务程序的功能,降低程序开发的难度。
图2以服务器是WEB缓存服务器为例,示意性地显示了一种实施方式的服务器的服务扩展方法。如图2所示,该方法包括:
步骤S201:抽象出WEB缓存服务器的HTTP请求的业务处理流程。
由于WEB缓存服务器主要处理的是HTTP请求,通过对WEB缓存服务器对HTTP请求的处理过程的梳理,可以知道WEB缓存服务器的HTTP请求的业务处理流程。图3示意性地显示了WEB缓存服务器的HTTP请求的业务流程,如图3所示,WEB缓存服务器的处理流程包括以下内容:
WEB缓存服务器接收客户端的请求,读取HTTP请求头,通过DNS解析得到源服务器的IP地址,根据客户端请求的url查看cache,如果cache中没有找到待查url的内容,那么WEB缓存服务器打开一个到源服务器的连接,然后转发客户端的请求。如果待查url已经在缓存中了,那么WEB缓存服务器检查缓存是否过期,如果内容是新的(即没有过期),那么WEB缓存服务器将响应头发送给客户端。如果内容已经过期,那么WEB缓存服务器则打开一个连接到源服务器的连接,到源服务器请求内容。如果各个阶段都没有发生错误,则缓存服务器将HTTP响应内容发送给客户端,然后关闭事务。
由此,通过对WEB缓存服务器的HTTP请求处理流程的梳理,就可以根据该业务流程特点,将其处理流程划分为如图3所示的以下状态:接收请求(accept)30、读请求头(read request hdr)31、解析DNS(OS DNSlookup)32、查看缓存(cache lookup)33、检查期限(freshness check)34、打开连接(open conn to OS)35、发送响应头(send reply hdr)36、发送响应内容(send resp body)、关闭事务(transaction close)38。
步骤S202:根据业务处理流程的特点,对HTTP请求处理进行层级划分。
通过步骤S201的分析处理,可以发现在HTTP请求处理流程的每个状态变化之间,是可以实现一些用户自定义行为的,即可以在状态变化之间对HTTP请求处理进行层级划分。图4示意性地显示了本发明一种实施方式的WEB缓存服务器的HTTP请求的业务层级配置,如图4所示,可以在HTTP请求处理的每个状态之间,都设置了一个层级,该层级用于定义响应事件和配置自定义功能的插件。例如,这些层级可以是图4所示的设置在接收请求(accept)30和读请求头(read request hdr)31状态之间的层级40、设置在读请求头(read request hdr)31和解析DNS(OS DNSlookup)32状态之间的层级41、设置在解析DNS(OS DNS lookup)32和查看缓存(cache lookup)33状态之间的层级42、设置在查看缓存(cachelookup)33和检查期限(freshness check)34状态之间的层级43、及设置在检查期限(freshness check)34和发送响应头(send reply hdr)36状态之间的层级4。在每个状态转换间都可以根据需要设置层级,注册响应事件,本实施例只对上述的几个层级设置进行示例性描述,以详细说明本发明的构思,但层级的设置不限于只设置为图示的数量和内容,在实际应用中,可以根据需求,基于上述构思进行应用。
步骤S203:根据划分的层级和业务需求,在WEB缓存服务器内核定义HOOK点事件及回调函数的原型。
根据划分好的层级,根据业务需求,在WEB缓存服务器内核定义HOOK点事件,作为不同层级的响应事件。如图4所示,可以在层级40设置响应事件Transaction Start Hook、在层级41设置事件Read Req HeaderHook、在层级42设置事件OS DNS Lookup Hook、在层级43设置事件Alternate Select Hook、在层级44设置事件Send Resp Header Hook。将这些设置的响应事件在WEB缓存服务器内核进行定义,同时在WEB缓存服务器内核定义与这些HOOK点事件相对应的回调函数的原型。需要说明的是,由于定制的操作基本都是基于事件驱动对HTTP会话的处理,故这些HOOK点事件使用相同的回调函数原型,包括两个参数,第一个参数为事件,第二个参数是由服务器内核传入的httpSession(该对象包含针对整个HTTP会话的所有属性)。例如,对层级40至层级44设置的响应事件,在服务器内核分别定义其HOOK点事件为EVENT_HTTP_TRANSACTION_START、EVENT_HTTP_READ_REQUEST_HDR、EVENT_HTTP_OS_DNS、EVENT_HTTP_SELECT_ALT、EVENT_HTTP_SEND_RESPONE_HDR,同时可以对应定义事件的回调函数原型为int eventCallback(EVENT,void*)。
步骤S204:定义对HTTP请求处理程序进行服务扩展的统一插件接口。
在WEB缓存服务器内核定义了HOOK点事件及回调函数原型后,定义包含注册事件接口的插件接口,以对HTTP请求处理程序中需要进行的扩展服务进行统一处理。而用户自定义插件可以根据业务需求对插件接口进行定制化实现。例如,可以定义插件接口为void pluginInit(int argc,constchar*argv[])。
步骤S205:根据业务需求实现插件接口,在不同层级配置实现自定义业务逻辑的插件。
用户自定义插件都需要实现定义好的插件接口,包括对传进来的参数进行处理、根据业务需要将自己关心的事件注册到WEB缓存服务器及在回调函数中实现自定义的业务逻辑等。以本实施例定义的插件接口pluginInit为例,其中,传进来的参数包括argc和argv[],argc为传进来的参数的个数,argv[]为参数的具体内容,参数是业务相关的数据,如请求的url、用户信息等,可以根据用户自定义业务逻辑对参数进行处理。同时,插件需要实现对事件的注册,具体可以是通过调用registerEvent,根据上述在WEB缓存服务器内核定义好的HOOK点事件和回调函数原型,将本插件关心的事件注册到WEB缓存服务器上,以通过事件驱动,调用回调函数实现的业务逻辑,而回调函数实现的业务逻辑就是本插件自定义的业务逻辑。例如,在插件中通过registerEvent(EVENT_HTTP_READ_REQUEST_HDR,handleHttpReadRequestHdr),将事件EVENT_HTTP_READ_REQUEST_HDR和其对应的回调函数handleHttpReadRequestHdr(原型参见前文叙述,包括两个参数,具体的业务实现为用户自定义的业务逻辑)注册到WEB缓存服务器。其中,handleHttpReadRequestHdr就是用户自定义的在WEB缓存服务器读取http-request头之后的一些用户自定义逻辑。在实现插件后,对插件进行编译,并导出接口pluginInit,WEB缓存服务器就可以根据事件驱动,动态加载插件和进行初始化。比如,对一个去掉HTTP的请求头中的Accept-Encoding的插件,可以通过registerEvent(EVENT_HTTP_READ_REQUEST_HDR,handleHttpReadRequestHdr)实现插件接口,并在回调函数handleHttpReadRequestHdr中实现如下的业务逻辑:
通过以上内容,便可根据用户需求,实现定制化的业务逻辑的插件,并在事件发生时,通过插件接口对插件进行动态加载。
步骤S206:通过事件驱动主逻辑监听事件,执行插件的自定义业务逻辑,实现服务扩展。
通过registerEvent将事件注册之后,在事件发生时,事件驱动模型的主逻辑就可以在监听到该事件如EVENT_HTTP_READ_REQUEST_HDR事件时,执行包含了该事件接口的插件,并执行该插件中注册的该事件对应的回调函数的业务逻辑,而回调函数的业务逻辑就是插件的自定的业务逻辑。由此,就可以根据业务需求,通过插件对服务器的服务程序进行扩展,而不需要修改整个服务器程序的内容。
需要说明的是,本发明实施例中设置的插件可以是全局插件,也可以是局部插件。其中,全局插件是指对服务器的所有的某一处理程序(如WEB缓存服务器的所有HTTP请求处理)都适用的插件,即用于对服务器中的某一处理程序进行统一的全局的服务扩展(如对所有的HTTP请求,进行相应的encoding处理等)。而局部插件是指针对服务器的处理程序中的特定处理请求才适用的插件,例如在WEB缓存服务器中的针对具体的url请求(例如针对特定域名下的url请求,或针对特定类型的url请求,如图片的url请求)才生效的插件。全局插件和局部插件都可以根据业务的实际情况和需求进行配置,包括相应事件的注册和回调函数中自定义逻辑的实现等。具体设计方案,可以根据业务需求和用户需要进行实现。例如,如果是局部插件,可以设置多个实现了插件接口的插件,每个插件实现中注册需要处理的事件和对应的回调函数,每个回调函数处理局部的特定的业务。如果是全局插件,可以针对所有的事件,设置一个插件,该插件实现插件接口,将所有的事件都注册到服务器内核,通过一个回调函数进行相应的业务处理。对于具体实现方式,本发明不做限制,只要基于本发明构思,根据业务需求,通过事件注册和插件配置,实现服务扩展的业务目的,都属于本发明涉及的保护范围。
本发明的方法,提供了一种通过事件驱动动态加载插件,实现服务程序业务扩展的解决方案,能够在不修改整个服务程序的基础上,按照插件接口的定义,实现特定功能,降低了程序的开发难度,有效解决了在有特定需求时,需要通过修改整个WEB服务程序导致的代码重复开发率高、人力物力浪费及系统开发效率低的问题。
图5示意性地显示了本发明的服务器的服务扩展系统的一种实施方式的框架结构。如图5所示,在具体实现的过程中,该系统包括层级配置模块52、事件驱动模块50和插件管理模块51。层级配置模块52设置为根据服务器的业务特点,对服务程序进行层级配置,将服务程序划分为多个不同的层级。插件管理模块51设置为通过在划分的服务程序的不同层级间配置插件,实现定制化的业务逻辑,定制化的业务逻辑主要指配置的插件用于根据业务需求进行服务器的服务扩展。事件驱动模块50由服务程序内核实现,设置为在服务程序内核中,通过事件驱动和回调机制,调用相应的插件,执行插件中实现的相应业务逻辑,以根据相应业务逻辑实现插件所提供的服务扩展。其中,插件管理模块包括自定义单元511和插件生成单元512。插件管理模块51根据层级设置,通过自定义单元511在服务器内核定义相应的HOOK点事件和回调函数原型,并定义统一的插件接口。在定义好事件、回调函数原型和插件接口之后,插件管理模块51通过插件生成单元512配置实现插件接口的插件,接收外部请求,对传入的参数进行相应处理,并将事件及其对应的回调函数注册到服务器上。之后,通过在回调函数中实现自定义业务逻辑,编译插件,并导出插件接口,服务器就可以在指定的事件发生时,通过事件驱动逻辑执行回调函数中的业务逻辑。而回调函数的业务逻辑,就是对应的该插件的自定义业务逻辑。由此就可以实现通过设置插件,实现对服务器的服务程序的功能扩展。
具体地,以WEB缓存服务器为例,在实际应用中,其主要的业务处理场景是处理客户端的HTTP请求,然后根据缓存源服务器的响应,当下次客户端请求相同的url时,WEB缓存服务器直接从已保存的缓存内容响应给客户端。在这种业务场景下,WEB缓存服务器主要处理的是HTTP请求、HTTP响应、DNS解析及传输等方面的事务,根据业务需求,就可能需要配置黑名单插件,以拒绝不被允许访问的客户端请求;或配置图片转换插件,以将原始源端的JPEG图片转换成GIF图片;或配置收集客户端信息的插件,以从客户端的请求头中获取一些信息,保存到数据库中,供后续的其他模块进行数据分析;或配置认证插件,以检查一个用户是否具有访问指定WEB站点的权限,该插件可能会需要向认证服务器发送一个请求等。此时,层级配置模块52就可以设置为根据HTTP请求处理的状态转换,对处理客户端的HTTP请求的服务程序进行层级划分,如每个状态转换之间设定为一个层级。插件管理模块51根据层级配置模块52设置的层级,就可以在相应的层级间设置不同功能的插件,由事件驱动模块50通过事件响应回调设置的插件,实现服务扩展。
本发明实施例中设置的插件可以是全局插件,也可以是局部插件。其中,全局插件是指对服务器的所有的某一处理程序(如WEB缓存服务器的所有HTTP请求处理)都适用的插件,即用于对服务器中的某一处理程序进行统一的全局的服务扩展(如对所有的HTTP请求,进行相应的encoding处理等)。而局部插件是指针对服务器的处理程序中的特定处理请求才适用的插件,例如在WEB缓存服务器中的针对具体的url请求(例如针对特定域名下的url请求,或针对特定类型的url请求,如图片的url请求)才生效的插件。全局插件和局部插件都可以根据业务的实际情况和需求进行配置,包括相应事件的注册和回调函数中自定义逻辑的实现等。
本发明实施例的服务器架构中各个模块可以是软件模块也可以是硬件模块,具体的实现方法(如层级设置、插件实现等)可参照前文叙述,在此不再赘述。通过本发明的服务器架构,可以在有特定业务需求时,通过设置相应的插件实现服务扩展,而无需修改整个服务器程序,扩展功能更简捷、灵活,能够有效提高系统开发的效率。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (12)
1.一种服务器的服务扩展方法,其特征在于,包括:
根据服务器的业务处理流程,对服务器的服务程序进行层级配置,将所述服务程序划分为多个层级;
在所述划分的服务程序的多个层级间配置插件,其中,所述插件的类型和业务逻辑根据所述服务器的业务需求确定;
在所述服务程序内核中,通过事件驱动和回调机制调用所述插件,执行所述插件中的业务逻辑,以完成所述服务程序的功能扩展。
2.根据权利要求1所述的方法,其特征在于,所述在所述划分的服务程序的多个层级间配置插件包括:
根据业务需求,在服务器内核定义HOOK点事件和回调函数原型;
定义插件接口;
根据外部请求,在相应层级生成实现所述插件接口的插件。
3.根据权利要求2所述的方法,其特征在于,所述根据外部请求,在相应层级生成实现所述插件接口的插件包括:
根据外部请求,在所述插件中,处理传入的参数和注册所述事件及其回调函数到服务器上;
在回调函数中实现与所述插件提供的扩展服务相对应的业务逻辑;
编译插件,并导出所述插件接口。
4.根据权利要求3所述的方法,其特征在于,所述在所述服务程序内核中,通过事件驱动和回调机制调用所述插件,执行所述插件中的业务逻辑包括:
在服务程序内核实现事件驱动模型,根据事件驱动逻辑,通过主驱动逻辑监听所述注册的事件,在相应事件发生时,通过回调机制调用所述回调函数,执行所述回调函数中实现的与所述插件提供的扩展服务相对应的业务逻辑。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述服务器是WEB缓存服务器,所述根据服务器的业务处理流程,对服务器的服务程序进行层级配置包括:
按照HTTP请求处理的业务流程,根据所述HTTP请求处理的状态,在每个状态转换之间配置层级。
6.根据权利要求1至4任一项所述的方法,其特征在于,所述服务器是WEB缓存服务器,所述插件包括黑名单插件、图片转换插件、收集客户端信息的插件和认证插件的至少之一。
7.一种服务器的服务扩展系统,其特征在于,包括:
层级配置模块,用于根据服务器的业务处理流程,对服务器的服务程序进行层级配置,将所述服务程序划分为多个层级;
插件管理模块,用于在所述划分的服务程序的多个层级间配置插件,其中,所述插件的类型和业务逻辑根据所述服务器的业务需求确定;
和
事件驱动模块,用于在服务程序内核中,通过事件驱动和回调机制调用所述插件,执行所述插件中的业务逻辑,以完成所述服务程序的功能扩展。
8.根据权利要求7所述的系统,其特征在于,所述插件管理模块用于根据业务需求,在服务器内核定义HOOK点事件和回调函数原型,并定义插件接口;根据外部请求,在相应层级生成实现所述插件接口的插件。
9.根据权利要求8所述的系统,其中,所述服务器是WEB缓存服务器,所述插件管理模块根据外部请求,在所述插件中,处理传入的参数和注册所述事件及其回调函数到服务器上;在回调函数中实现与所述插件提供的扩展服务相对应的业务逻辑;编译插件,并导出所述插件接口。
10.根据权利要求9所述的系统,其中,所述服务器是WEB缓存服务器,所述事件驱动模块用于在服务程序内核实现事件驱动模型,根据事件驱动逻辑,通过主驱动逻辑监听所述注册的事件,在相应事件发生时,通过回调机制调用所述回调函数,执行所述回调函数中实现的与所述插件提供的扩展服务相对应的业务逻辑。
11.根据权利要求7-10任一所述的系统,其中,所述服务器是WEB缓存服务器,所述层级配置模块用于按照HTTP请求处理的业务流程,根据所述HTTP请求处理的状态,在每个状态转换之间配置层级。
12.根据权利要求7-10任一所述的系统,其中,所述服务器是WEB缓存服务器,所述插件包括黑名单插件、图片转换插件、收集客户端信息的插件和认证插件的至少之一。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510836647.2A CN105893413A (zh) | 2015-11-26 | 2015-11-26 | 服务器的服务扩展方法及扩展系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510836647.2A CN105893413A (zh) | 2015-11-26 | 2015-11-26 | 服务器的服务扩展方法及扩展系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105893413A true CN105893413A (zh) | 2016-08-24 |
Family
ID=57002348
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510836647.2A Pending CN105893413A (zh) | 2015-11-26 | 2015-11-26 | 服务器的服务扩展方法及扩展系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105893413A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108667919A (zh) * | 2018-04-25 | 2018-10-16 | 金蝶软件(中国)有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN109101271A (zh) * | 2018-07-27 | 2018-12-28 | 郑州云海信息技术有限公司 | 一种程序扩展方法及相关装置 |
CN110300025A (zh) * | 2019-06-28 | 2019-10-01 | 湖南御家科技有限公司 | 一种业务中台服务扩展方法及系统 |
CN112068898A (zh) * | 2020-09-01 | 2020-12-11 | 上海熙菱信息技术有限公司 | 一种可配置插件式服务集成系统及方法 |
CN112511607A (zh) * | 2020-11-18 | 2021-03-16 | 上海七牛信息技术有限公司 | 一种内容分发网络边缘节点系统 |
CN112527248A (zh) * | 2019-09-18 | 2021-03-19 | 阿里巴巴集团控股有限公司 | 请求处理方法、装置及电子设备 |
CN112601114A (zh) * | 2020-12-14 | 2021-04-02 | 杭州当虹科技股份有限公司 | 一种基于钩子回调的gb28181按需拉流实现方法 |
CN112764717A (zh) * | 2020-12-30 | 2021-05-07 | 广州凡科互联网科技股份有限公司 | 一种基于事件流程驱动模型的服务自动化管理平台 |
CN113672408A (zh) * | 2021-08-24 | 2021-11-19 | 上海洪朴信息科技有限公司 | 图像处理系统及方法 |
CN113986889A (zh) * | 2021-12-28 | 2022-01-28 | 天津南大通用数据技术股份有限公司 | 一种实现数据库函数智能扩展的方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1968154A (zh) * | 2006-09-15 | 2007-05-23 | 华为技术有限公司 | 使用插件进行业务扩展的系统及其方法 |
WO2011086571A1 (en) * | 2010-01-13 | 2011-07-21 | Tata Consultancy Services Limited | A computationally efficient system for developing configurable, extensible business application product lines using model-driven techniques |
CN103617508A (zh) * | 2013-12-12 | 2014-03-05 | 用友软件股份有限公司 | 可配置的业务规则插件扩展装置和业务规则插件扩展方法 |
-
2015
- 2015-11-26 CN CN201510836647.2A patent/CN105893413A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1968154A (zh) * | 2006-09-15 | 2007-05-23 | 华为技术有限公司 | 使用插件进行业务扩展的系统及其方法 |
WO2011086571A1 (en) * | 2010-01-13 | 2011-07-21 | Tata Consultancy Services Limited | A computationally efficient system for developing configurable, extensible business application product lines using model-driven techniques |
CN103617508A (zh) * | 2013-12-12 | 2014-03-05 | 用友软件股份有限公司 | 可配置的业务规则插件扩展装置和业务规则插件扩展方法 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108667919B (zh) * | 2018-04-25 | 2021-06-15 | 金蝶软件(中国)有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN108667919A (zh) * | 2018-04-25 | 2018-10-16 | 金蝶软件(中国)有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN109101271A (zh) * | 2018-07-27 | 2018-12-28 | 郑州云海信息技术有限公司 | 一种程序扩展方法及相关装置 |
CN110300025A (zh) * | 2019-06-28 | 2019-10-01 | 湖南御家科技有限公司 | 一种业务中台服务扩展方法及系统 |
CN112527248A (zh) * | 2019-09-18 | 2021-03-19 | 阿里巴巴集团控股有限公司 | 请求处理方法、装置及电子设备 |
CN112068898A (zh) * | 2020-09-01 | 2020-12-11 | 上海熙菱信息技术有限公司 | 一种可配置插件式服务集成系统及方法 |
CN112068898B (zh) * | 2020-09-01 | 2024-04-19 | 上海熙菱信息技术有限公司 | 一种可配置插件式服务集成系统及方法 |
CN112511607A (zh) * | 2020-11-18 | 2021-03-16 | 上海七牛信息技术有限公司 | 一种内容分发网络边缘节点系统 |
CN112601114A (zh) * | 2020-12-14 | 2021-04-02 | 杭州当虹科技股份有限公司 | 一种基于钩子回调的gb28181按需拉流实现方法 |
CN112601114B (zh) * | 2020-12-14 | 2023-03-21 | 杭州当虹科技股份有限公司 | 一种基于钩子回调的gb28181按需拉流实现方法 |
CN112764717A (zh) * | 2020-12-30 | 2021-05-07 | 广州凡科互联网科技股份有限公司 | 一种基于事件流程驱动模型的服务自动化管理平台 |
CN113672408A (zh) * | 2021-08-24 | 2021-11-19 | 上海洪朴信息科技有限公司 | 图像处理系统及方法 |
CN113986889A (zh) * | 2021-12-28 | 2022-01-28 | 天津南大通用数据技术股份有限公司 | 一种实现数据库函数智能扩展的方法及系统 |
CN113986889B (zh) * | 2021-12-28 | 2022-04-05 | 天津南大通用数据技术股份有限公司 | 一种实现数据库函数智能扩展的方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105893413A (zh) | 服务器的服务扩展方法及扩展系统 | |
Zhang et al. | SafeCity: Toward safe and secured data management design for IoT-enabled smart city planning | |
EP3330880B1 (en) | Secure computation system, secure computation device, secure computation method, and program | |
Suciu et al. | Big data, internet of things and cloud convergence–an architecture for secure e-health applications | |
US9917735B2 (en) | System and method for big data aggregation in sensor network | |
CN103403707B (zh) | 用于数据库代理请求交换的系统和方法 | |
US8875135B2 (en) | Assigning component operations of a task to multiple servers using orchestrated web service proxy | |
CN102664786B (zh) | 虚拟交换机截取器 | |
US20230273853A1 (en) | Securing an application based on auto-learning and auto-mapping of application services and apis | |
CN109587105A (zh) | 基于策略的网络服务指纹识别 | |
CN111131379A (zh) | 一种分布式流量采集系统和边缘计算方法 | |
CN110519077A (zh) | 一种日志采集系统、方法、装置、服务器及存储介质 | |
CN110266822A (zh) | 一种基于nginx的共享式负载均衡实现方法 | |
CN103986748A (zh) | 实现服务化的方法和装置 | |
CN109547524A (zh) | 基于物理网的用户行为存储方法、装置、设备及存储介质 | |
Li et al. | DrawerPipe: A reconfigurable pipeline for network processing on FPGA-based SmartNIC | |
CN103577251A (zh) | 基于事件的互联网计算处理系统及方法 | |
Ali et al. | Big data based smart blockchain for information retrieval in privacy-preserving healthcare system | |
CN114945032B (zh) | 电力物联网终端数据接入系统、方法、装置、设备及介质 | |
Bouten et al. | Semantic validation of affinity constrained service function chain requests | |
Preuveneers et al. | Samurai: A streaming multi-tenant context-management architecture for intelligent and scalable internet of things applications | |
CN111557087A (zh) | 使用业务流拼接发现中间设备 | |
Kavin et al. | Performance evaluation of stateful firewall-enabled SDN with flow-based scheduling for distributed controllers | |
KR20210039652A (ko) | 스마트시티 안전 데이터 고속 전처리 장치 및 그 시스템 | |
US20140136683A1 (en) | Inter-packet interval prediction operating algorithm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160824 |