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

文档序号:9375204阅读:来源:国知局
[0100] 该插件节点链具有链首节点和链尾节点,链首节点是指插件节点链中排第一位的 节点,而链尾节点则是指插件节点链中排最后一位的节点。当前节点是指当前正处理的节 点,这里将插件节点链的链首节点作为当前节点,保证插件节点链的链式处理顺序。
[0101] 调用模块806,用于调用当前节点的插件的处理函数对当前网络数据进行处理,获 得当前节点处理后的网络数据。
[0102] 具体地,当前网络数据是指在调用当前节点的插件的处理函数时的网络数据。对 于第一个处理网络数据的节点,当前网络数据为接收到的网络数据;而对于其它插件,则当 前网络数据为当前节点的上一节点处理后的网络数据。
[0103] 每个插件实现了各自的处理函数,该处理函数用于实现相应插件的具体功能。该 处理函数可为回调函数,调用模块806可用于在调用该处理函数后,直到接收到该处理函 数的继续处理的反馈后,才会继续后续动作,可以保证插件节点链的链式处理方式。
[0104] 调用模块806用于调用当前节点的插件的处理函数后,将当前网络数据传入该处 理函数,获得该处理函数反馈的处理后的网络数据。
[0105] 检测模块808,用于检测是否满足网络数据处理结束条件,若是则结束对网络数据 的处理。
[0106] 具体地,网络数据处理结束条件是指结束采用插件节点链中节点对应的插件的处 理函数对网络数据进行处理的条件。若满足网络数据处理结束条件时,说明可以停止采用 插件节点链中各节点对应的插件的处理函数对网络数据进行处理。若不满足网络数据处理 结束条件,说明需要继续采用插件节点链中各节点对应的插件的处理函数对网络数据进行 处理。
[0107] 当前节点变更模块810,用于当不满足网络数据处理结束条件时,将插件节点链中 当前节点的下一节点作为当前节点后,通知调用模块806。
[0108] 具体地,插件节点链中节点是链式排列的,因此顺序是唯一的,可以直接按照插件 节点链中节点的顺序,将下一节点作为当前节点,通知调用模块806。调用模块806则用于 继续调用当前节点的插件的处理函数对当前网络数据进行处理,获得当前节点处理后的网 络数据。
[0109] 上述基于通用网关接口插件的数据处理装置800,将插件形成插件节点链,插件节 点链中每个节点各自对应插件。这样在接收到网络数据后,就可以从插件节点链的链首节 点开始,按照插件节点链的顺序来逐个地调用相应插件的处理函数对网络数据进行处理。 这种链式的插件管理与调用方式,使得对网络数据的处理顺序变得唯一,在正常处理的情 况下会得到唯一的结果,准确性强。而且这种链式结构很容易对插件进行删除或增加,修改 方便,扩展容易。再者,在插件节点链中增加插件不需要测试全部代码,仅需对增加的插件 的代码进行测试便可,维护起来非常方便。上述基于通用网关接口插件的数据处理方法非 常适合需求快速迭代的业务。
[0110] 在一个实施例中,网络数据处理结束条件包括:当前节点的插件的处理函数声明 网络数据处理结束。具体地,当前节点的处理函数可以声明网络数据处理已完成,这样检测 模块808用于若接收到处理函数反馈的该声明处理已完成的信息,则判定满足网络数据处 理结束条件。若当前节点的处理函数未声明网络数据处理已完成,或者声明网络数据处理 未完成,则检测模块808可用于若获取到处理函数反馈的处理后的网络数据但未接收到处 理函数反馈的该声明处理已完成的信息,或者接收到处理函数反馈的声明网络数据处理未 完成的信息,则判定不满足网络数据处理结束条件。
[0111] 在一个实施例中,网络数据处理结束条件包括:当前节点的插件的处理函数声明 网络数据处理出错。具体地,网络数据可能不满足格式要求,或者网络数据本身是伪造的, 或者网络数据在传输过程中出错等,都会导致插件的处理函数无法正常处理从而出错。这 样检测模块808可用于若接收到处理函数反馈的处理出错的信息,则判定满足网络数据处 理结束条件;若获取到处理函数反馈的处理后的网络数据但未接收到处理函数反馈的处理 出错的信息,或者接收到处理函数反馈的处理未出错的信息,则判定不满足网络数据处理 结束条件。当网络数据处理出错时无需再利用插件节点链中的下一节点的插件的处理函数 对网络数据进行处理,可以直接向网络数据的发起端返回出错提示。
[0112] 如图9所示,在一个实施例中,该基于通用网关接口插件的数据处理装置800还包 括:第一个处理阶段处理模块803、判断模块805和处理阶段变更模块807。
[0113] 网络数据接收模块802,用于接收网络数据。
[0114] 第一个处理阶段处理模块803,用于将网络数据的第一个处理阶段作为当前处理 阶段。
[0115] 链首节点处理模块804,还用于将当前处理阶段的插件节点链的链首节点作为当 前节点。各个插件事先在编译时被编译到通用网关接口中,然后各个插件的信息组合成为 节点数组,节点数组中可存储指向相应节点的插件的指针。插件信息包括插件名称、插件类 型、插件配置参数、插件处理函数以及插件生效的处理阶段。
[0116] 每个处理阶段可分别对应一个一维的节点数组,每个节点数组表示相应的处理阶 段的插件节点链。所有处理阶段的插件节点链也可以用二维数组表示,该二维数组的一个 维度可表示所处的处理阶段,另一个维度可表示相应处理阶段下的插件节点链中的节点。 通过节点数组的维度序号可以方便地定位到某处理阶段下的链首节点。
[0117] 调用模块806,用于调用当前节点的插件的处理函数对当前网络数据进行处理,获 得当前节点处理后的网络数据。具体地,调用模块806可用于查询节点数组从而查询到当 前节点的插件的处理函数,从而调用该处理函数来对网络数据进行处理。
[0118] 检测模块808,用于检测是否满足网络数据处理结束条件,若是则结束对网络数据 的处理。
[0119] 判断模块805,用于当不满足网络数据处理结束条件时,判断当前节点是否为当前 处理阶段的插件节点链的链尾节点。
[0120] 具体地,判断模块805需要判断当前处理阶段的插件节点链中当前节点的位置, 若当前节点已经是当前处理阶段的插件节点链的最后一个节点,则需要进入到下一个处理 阶段,否则将继续处理当前阶段的插件节点链中的下一个节点。
[0121] 在一个实施例中,判断模块805可用于根据当前处理阶段的节点数组的长度与当 前节点对应到节点数组中的位置来判断当前节点是否为当前处理阶段的插件节点链的链 尾节点。
[0122] 在一个实施例中,判断模块805可用于根据事先记录的当前处理阶段的插件节点 链的长度以及当前节点在该插件节点链中的位置来判断当前节点是否为当前处理阶段的 插件节点链的链尾节点。
[0123] 处理阶段变更模块807,用于在当前节点是当前处理阶段的插件节点链的链尾节 点时,按照网络数据处理阶段的顺序,将当前处理阶段的下一处理阶段作为当前处理阶段 后通知链首节点处理模块804。
[0124] 当前节点变更模块810,还用于在当前节点不是当前处理阶段的插件节点链的链 尾节点时,将当前处理阶段的插件节点链中当前节点的下一节点作为当前节点后,通知调 用模块806。
[0125] 本实施例中,通过划分网络数据的处理阶段,并且按网络数据的处理阶段来管理 各自的插件节点链,便于插件的管理。而且增减插件时仅需在相应处理阶段的插件节点链 中进行节点的增减即可,便于维护。
[0126] 在一个实施例中,网络数据的各处理阶段按先后顺序分别为请求接入及数据包接 收阶段、数据包处理阶段、业务处理阶段以及业务处理后的收尾阶段。
[0127] 其中,请求接入及数据包接收阶段,主要用于对网络数据的接入以及数据包的接 收。参照图7,通用网关接口在该处理阶段可挂载用户过滤插件和请求速率限制插件等。其 中用户过滤插件包括白名单过滤插件和黑名单过滤插件,其中白名单过滤插件用于在过滤 时保留白名单中记录的用户的网络数据,而黑名单过滤插件则用于过滤掉黑名单中记录的 用户的网络数据。请求速率限制插件可用于限制同一发起端发起的网络数据的速率,该速 率可以用接收到网络数据的频率表示。
[0128] 数据包处理阶段,主要用于以数据包为单位的数据处理。通用网关接口在该处理 阶段可挂载数据包合法性验证插件以及数据包过滤插件等。其中数据包合法性验证插件用 于对数据包进行合法性验证,数据包过滤插件则用于过滤掉符合预设的数据包特征的数据 包,数据包特征比如可以是数据包大小的特征。
[0129] 业务处理阶段,主要用于对网络数据中的网络数据的具体请求内容做处理,业务 包括广告业务、游戏业务、信息查询业务以及即时通信业务等。通用网关接口在
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1