基于通用网关接口插件的数据处理方法和装置的制造方法_3

文档序号:9375204阅读:来源:国知局
示第m+1处理阶段,η表示第m+1处理阶段下的插件 节点链中的节点序号为n+1。具体A[0][0]表示第一个处理阶段下的插件节点链的链首节 点,A[l][l]则表示第二个处理阶段下的插件节点链的第二个节点,以此类推。通过节点数 组的维度序号可以方便地定位到某处理阶段下的链首节点。
[0068] 步骤508,调用当前节点的插件的处理函数对当前网络数据进行处理,获得当前节 点处理后的网络数据。
[0069] 通用网关接口服务器102调用当前节点的插件的处理函数对当前网络数据进行 处理,获得当前节点处理后的网络数据。具体地,通用网关接口服务器102可以查询节点数 组从而查询到当前节点的插件的处理函数,从而调用该处理函数来对网络数据进行处理。
[0070] 在一个实施例中,当前处理阶段的插件节点链中的各节点的插件根据当前处理阶 段的插件API生成;各处理阶段的插件API不同。
[0071 ] 具体地,通用网关接口服务器102在各处理阶段分别提供不同的插件API,每个插 件API提供差异化的参数,这样可以适应网络数据的不同处理阶段实现各种功能。比如数 据包处理阶段的插件API仅提供与数据包处理有关的参数,而业务处理阶段则仅提供与业 务处理有关的参数。而且,同一处理阶段提供相同的插件API,却可以通过处理函数来实现 不同的插件功能,插件功能多样化。
[0072] 举例说明,一个插件APImodule_impl的部分代码如下:
[0073]
[0074]
[0075] 其中,名称为module_impl的插件API,所包括的插件名字name用于唯一标识出一 个插件;插件类型type用来对插件进行分类,便于管理;配置参数用于表示一个插件所需 要的配置文件中的内容;所要生效的处理阶段phase用于表示插件对应的处理阶段。插件 API还定义了相应插件的处理函数handler。
[0076] 在一个实施例中,该基于通用网关接口插件的数据处理方法还包括:在业务处理 阶段,调用当前节点的插件的处理函数对当前网络数据进行处理,获得当前节点处理后的 网络数据之后,将当前节点处理后的网络数据发送给广告推荐引擎服务器;接收广告推荐 引擎服务器反馈的广告推荐内容,并向广告推荐请求的发起端返回广告推荐内容。本实施 例中,在业务处理阶段,将当前节点处理后的网络数据发送给广告推荐引擎服务器,由广告 计算引擎负责广告推荐内容的具体计算工作,从而向网络数据的发起端返回广告推荐内 容。这样应用到广告推荐领域,可以方便地对广告推荐过程进行扩展,维护方便。
[0077] 步骤510,检测是否满足网络数据处理结束条件,若是,则执行步骤512 ;若否,则 执行步骤514。
[0078] 步骤512,结束对网络数据的处理。
[0079] 步骤514,判断当前节点是否为当前处理阶段的插件节点链的链尾节点。若是,则 执行步骤516后执行步骤506 ;若否,则执行步骤518后执行步骤508。
[0080] 具体地,通用网关接口服务器102需要判断当前处理阶段的插件节点链中当前节 点的位置,若当前节点已经是当前处理阶段的插件节点链的最后一个节点,则需要进入到 下一个处理阶段,否则将继续处理当前阶段的插件节点链中的下一个节点。
[0081] 在一个实施例中,通用网关接口服务器102可根据当前处理阶段的节点数组的 长度与当前节点对应到节点数组中的位置来判断当前节点是否为当前处理阶段的插件节 点链的链尾节点。举例说明,若当前处理阶段的节点数组B[m]的长度为M,且当前节点为 B[M-1],则当前节点为链尾节点;若当前节点的下标小于M-1,则当前节点不是链尾节点。
[0082] 在一个实施例中,可以根据事先记录的当前处理阶段的插件节点链的长度以及当 前节点在该插件节点链中的位置来判断当前节点是否为当前处理阶段的插件节点链的链 尾节点。
[0083] 步骤516,按照网络数据处理阶段的顺序,将当前处理阶段的下一处理阶段作为当 前处理阶段。
[0084] 此时,当前节点已经是当前处理阶段的插件节点链的最后一个节点,需要切换到 下一个处理阶段进行处理。具体通用网关接口服务器102按照网络数据处理阶段的顺序, 将当前处理阶段的下一处理阶段作为当前处理阶段后,继续执行上述步骤506。
[0085] 步骤518,将当前处理阶段的插件节点链中当前节点的下一节点作为当前节点。
[0086] 此时,当前节点还不是当前处理阶段的插件节点链的最后一个节点,需要切换到 当前处理阶段的插件节点链中当前节点的下一个节点进行处理。具体通用网关接口服务器 102将当前处理阶段的插件节点链中当前节点的下一节点作为当前节点后,继续执行上述 步骤508。
[0087] 本实施例中,通过划分网络数据的处理阶段,并且按网络数据的处理阶段来管理 各自的插件节点链,便于插件的管理。而且增减插件时仅需在相应处理阶段的插件节点链 中进行节点的增减即可,便于维护。
[0088] 参照图7,下面用一个具体应用场景来说明上述基于通用网关接口插件的数据处 理方法的原理。本应用场景中该基于通用网关接口插件的数据处理方法应用于上述图3所 示的广告推荐系统中的广告推荐引擎CGI服务器302来举例说明,具体包括如下步骤:
[0089] 广告推荐引擎CGI服务器接收网络数据,网络数据包括广告推荐请求以及相应的 数据包。广告推荐引擎CGI服务器会对该广告推荐请求进行接入,并接收数据包。
[0090] 广告推荐引擎CGI服务器进入请求接入及数据包接收阶段,获取请求接入及数据 包接收阶段的插件节点链,从当前处理阶段的插件节点链的链首节点开始,逐个节点地调 用相应节点的插件的处理函数对网络数据进行处理,得到相应节点处理后的网络数据。该 处理阶段的插件包括用户过滤插件和请求速率限制插件等。
[0091] 广告推荐引擎CGI服务器结束请求接入及数据包接收阶段后,进入数据包处理阶 段,获取数据包处理阶段的插件节点链,从当前处理阶段的插件节点链的链首节点开始,逐 个节点地调用相应节点的插件的处理函数对网络数据进行处理,得到相应节点处理后的网 络数据。该处理阶段的插件包括数据包合法性验证插件以及数据包过滤插件等。
[0092] 广告推荐引擎CGI服务器结束数据包处理阶段后,进入业务处理阶段,获取业务 处理阶段的插件节点链,从当前处理阶段的插件节点链的链首节点开始,逐个节点地调用 相应节点的插件的处理函数对网络数据进行处理,得到相应节点处理后的网络数据,并将 该处理后的网络数据发送给广告推荐引擎服务器,接收广告推荐引擎服务器反馈的广告推 荐内容,并向广告推荐请求的发起端返回广告推荐内容。该处理阶段的插件包括业务计算 插件以及请求第三方数据的插件等。
[0093] 广告推荐引擎CGI服务器结束业务处理阶段后,进入到业务处理后的收尾阶段。 获取业务处理后的收尾阶段的插件节点链,从当前处理阶段的插件节点链的链首节点开 始,逐个节点地调用相应节点的插件的处理函数对网络数据进行处理,得到相应节点处理 后的网络数据。该处理阶段的插件包括统计插件、日志插件以及请求结果上报插件等。
[0094] 如图8所示,在一个实施例中,提供了一种基于通用网关接口插件的数据处理装 置800,具有实现上述各个实施例的基于通用网关接口插件的数据处理方法的功能模块。该 基于通用网关接口插件的数据处理装置800包括网络数据接收模块802、链首节点处理模 块804、调用模块806、检测模块808和当前节点变更模块810。
[0095] 网络数据接收模块802,用于接收网络数据。
[0096] 具体地,网络数据接收模块802用于接收终端发来的网络数据。网络数据是指通 过网络传输的数据。网络数据包括HTTP请求及该HTTP请求对应的数据包。该HTTP请求 可为广告推荐请求。
[0097] 链首节点处理模块804,用于将插件节点链的链首节点作为当前节点。
[0098] 具体地,链首节点处理模块804可用于将插件节点链的链首节点作为当前节点。 这里的插件是遵循通用网关接口的规范的插件API编写出来的程序,可以挂载在通用网关 接口上实现各种功能。比如插件可以包括请求与回复功能插件、日志插件、监控插件、对不 同请求的格式适配的插件、回复不同格式答复包的打包插件、用户过滤插件、请求速率限制 插件、数据包合法性验证插件、业务计算插件、请求第三方数据的插件以及上报请求结果的 插件等。
[0099] 插件节点链是指代表各插件的各个节点按链式的预定顺序组织起来的数据结构。 插件可由脚本生成,并可在编译期被编译到通用网关接口中,形成插件节点链。
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1